linux - 下面這條shell命令怎么用python寫?。?/h1>
瀏覽:188日期:2022-06-27 16:05:37
問題描述
最初的腳本是一個前輩維護的,shell腳本,太難懂了,老大讓我重新用python寫一遍,功能如下,就是獲取svn log中的時間戳字段
]我按照python的寫法,將命令拼接起來,調(diào)用popen執(zhí)行。
但是運行的時候報錯了,如下所示:

然后我測了下cmd的前面部分,也就是
他的結(jié)果是:

可見結(jié)果是正確的,所以判斷問題就出現(xiàn)在sed這部分,還請各位前輩幫忙看看。
問題解答
回答1:你把命令直接復(fù)制到命令行能用嗎?如果能用就是你組織字符串出的錯,比如雙引號被你漏了,比如python中'%F'與’'%F'’是不一樣的,還有’2’與’2’是不一樣的
回答2:剛開始工作,太拘泥于別人的思路了,我想了下直接盡可能的用python來實現(xiàn)功能。用python的替換功能搞定問題就好了

回答3:不用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')))
上一條:Python字符串轉(zhuǎn)大小寫問題下一條:
相關(guān)文章:
1. docker內(nèi)創(chuàng)建jenkins訪問另一個容器下的服務(wù)器問題2. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. html - css 使用字體的時候,格式有什么特殊要求嗎?5. html5 - 百度echart官網(wǎng)下載的地圖json數(shù)據(jù)亂碼6. css3 - 學(xué)習(xí)css構(gòu)建圖形時,遇到一個很有意思的現(xiàn)象,具體代碼如下7. javascript - js閉包作用域8. javascript - echart+百度地圖9. 極光推送 - Android app消息推送 百度 極光 個推 信鴿哪個好一些?10. 微信開放平臺 - android 微信支付后點完成按鈕,后回調(diào)打開第三方頁面,屏幕閃動,求解決方法
問題描述
最初的腳本是一個前輩維護的,shell腳本,太難懂了,老大讓我重新用python寫一遍,功能如下,就是獲取svn log中的時間戳字段]我按照python的寫法,將命令拼接起來,調(diào)用popen執(zhí)行。
但是運行的時候報錯了,如下所示:
然后我測了下cmd的前面部分,也就是他的結(jié)果是:
可見結(jié)果是正確的,所以判斷問題就出現(xiàn)在sed這部分,還請各位前輩幫忙看看。
問題解答
回答1:你把命令直接復(fù)制到命令行能用嗎?如果能用就是你組織字符串出的錯,比如雙引號被你漏了,比如python中'%F'與’'%F'’是不一樣的,還有’2’與’2’是不一樣的
回答2:剛開始工作,太拘泥于別人的思路了,我想了下直接盡可能的用python來實現(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')))
