linux - 下面這條shell命令怎么用python寫啊?
問題描述
最初的腳本是一個(gè)前輩維護(hù)的,shell腳本,太難懂了,老大讓我重新用python寫一遍,功能如下,就是獲取svn log中的時(shí)間戳字段]我按照python的寫法,將命令拼接起來,調(diào)用popen執(zhí)行。
但是運(yùn)行的時(shí)候報(bào)錯(cuò)了,如下所示:
然后我測(cè)了下cmd的前面部分,也就是他的結(jié)果是:
可見結(jié)果是正確的,所以判斷問題就出現(xiàn)在sed這部分,還請(qǐng)各位前輩幫忙看看。
問題解答
回答1:你把命令直接復(fù)制到命令行能用嗎?如果能用就是你組織字符串出的錯(cuò),比如雙引號(hào)被你漏了,比如python中'%F'與’'%F'’是不一樣的,還有’2’與’2’是不一樣的
回答2:剛開始工作,太拘泥于別人的思路了,我想了下直接盡可能的用python來實(shí)現(xiàn)功能。用python的替換功能搞定問題就好了
不用sed/grep...
# coding: utf8import re from time import strftime, strptimefrom subprocess import Popen, PIPEcmd = ’svn log’ # 不需要sedresult = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)stdout, stderr = result.communicate()for _ in re.findall(r’(?<=date>)([^<.]+).’, stdout): print(strftime('%F %T', strptime(_, '%Y-%m-%dT%H:%M:%S')))
相關(guān)文章:
1. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)2. 跨類調(diào)用后,找不到方法3. sql語句 - 如何在mysql中批量添加用戶?4. 怎么php怎么通過數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。5. mysql - 表名稱前綴到底有啥用?6. 編輯成功不顯示彈窗7. tp 6.0 數(shù)據(jù)查詢,求教!8. 為什么php修改數(shù)據(jù)無法同步到數(shù)據(jù)庫,只是當(dāng)前頁面修改成功?9. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法10. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?
