linux - 下面這條shell命令怎么用python寫???
問題描述
最初的腳本是一個前輩維護的,shell腳本,太難懂了,老大讓我重新用python寫一遍,功能如下,就是獲取svn log中的時間戳字段]我按照python的寫法,將命令拼接起來,調用popen執行。
但是運行的時候報錯了,如下所示:
然后我測了下cmd的前面部分,也就是他的結果是:
可見結果是正確的,所以判斷問題就出現在sed這部分,還請各位前輩幫忙看看。
問題解答
回答1:你把命令直接復制到命令行能用嗎?如果能用就是你組織字符串出的錯,比如雙引號被你漏了,比如python中'%F'與’'%F'’是不一樣的,還有’2’與’2’是不一樣的
回答2:剛開始工作,太拘泥于別人的思路了,我想了下直接盡可能的用python來實現功能。用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')))
相關文章:
1. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?2. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題3. html5 - HTML代碼中的文字亂碼是怎么回事?4. 視頻文件不能播放,怎么辦?5. javascript - vue2如何獲取v-model變量名6. javascript - 求幫助 , ATOM不顯示界面!!!!7. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處8. javascript - 為什么在谷歌控制臺 輸出1的時候,輸出的1立馬就不見了9. javascript - angular使從elastichearch中取出的文本高亮顯示,如圖所示10. javascript - ios返回不執行js怎么解決?
