首頁  >  問答  >  主體

linux - 下面這條shell指令怎麼用python寫啊?

最初的腳本是一個前輩維護的,shell腳本,太難懂了,老大讓我重新用python寫一遍,功能如下,就是獲取svn log中的時間戳字段

]
我依照python的寫法,將指令拼接起來,呼叫popen執行。

#但是運行的時候報錯了,如下:

#接著我測了下cmd的前面部分,也就是

他的結果是:

#可見結果是正確的,所以判斷問題就出現在sed這部分,還請各位前輩幫忙看看。

漂亮男人漂亮男人2669 天前1096

全部回覆(3)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-06-28 09:25:05

    你把命令直接複製到命令列能用嗎?如果能用就是你組織字串出的錯,例如雙引號被你漏了,例如python中"%F"與'"%F"'是不一樣的,還有'2'與'\2'是不一樣的

    回覆
    0
  • 怪我咯

    怪我咯2017-06-28 09:25:05

    剛開始工作,太拘泥於別人的思路了,我想了下直接盡可能的用python來實現功能。用python的替換功能搞定問題就好了

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-28 09:25:05

    不用sed/grep...

    # coding: utf8
    import re 
    from time import strftime, strptime
    from subprocess import Popen, PIPE
    
    cmd = 'svn log' # 不需要sed
    result = 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")))
    

    回覆
    0
  • 取消回覆