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. java - spring-data Jpa 不需要執行save 語句,Set字段就可以自動執行保存的方法?求解2. html5 - 微信瀏覽器視頻播放失敗3. javascript - 這問題怎么處理額4. css3 - 為什么css里面要帶-moz-|-webkit-后又來一個不帶它們的5. 網頁爬蟲 - Python 爬蟲中如何處理驗證碼?6. javascript - jQuery中live事件在移動微信端下沒有效果;代碼如下7. javascript - SuperSlide.js火狐不兼容怎么回事呢8. javascript - owl.carousel.js這個插件的原作者的網址是多少了?9. phpstady在win10上運行10. 在應用配置文件 app.php 中找不到’route_check_cache’配置項
