最初的脚本是一个前辈维护的,shell脚本,太难懂了,老大让我重新用python写一遍,功能如下,就是获取svn log中的时间戳字段
]
我按照python的写法,将命令拼接起来,调用popen执行。
但是运行的时候报错了,如下所示:
然后我测了下cmd的前面部分,也就是
他的结果是:
可见结果是正确的,所以判断问题就出现在sed这部分,还请各位前辈帮忙看看。
我想大声告诉你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")))