Heim > Fragen und Antworten > Hauptteil
Das ursprüngliche Skript wurde von einem Senior verwaltet und war zu schwer zu verstehen. Der Chef hat mich gebeten, es erneut in Python zu schreiben, nämlich das Zeitstempelfeld im SVN abzurufen log
]
Ich habe die Anweisungen von Python befolgt. Die Art und Weise, es zu schreiben, besteht darin, die Befehle zusammenzufügen und popen aufzurufen, um sie auszuführen.
Aber beim Ausführen wurde ein Fehler gemeldet, wie unten gezeigt:
Dann habe ich den vorderen Teil von cmd gemessen, das ist
Das Ergebnis ist:
Es ist ersichtlich, dass das Ergebnis korrekt ist, daher tritt das Beurteilungsproblem im Sed-Teil auf. Bitte helfen Sie mir bei Ihren Senioren.
我想大声告诉你2017-06-28 09:25:05
你把命令直接复制到命令行能用吗?如果能用就是你组织字符串出的错,比如双引号被你漏了,比如python中"%F"与'"%F"'是不一样的,还有'\2'与'\\2'是不一样的
过去多啦不再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")))