linux - 下面这条shell命令怎么用python写啊?
漂亮男人
漂亮男人 2017-06-28 09:23:05
[Python讨论组]

最初的脚本是一个前辈维护的,shell脚本,太难懂了,老大让我重新用python写一遍,功能如下,就是获取svn log中的时间戳字段

]
我按照python的写法,将命令拼接起来,调用popen执行。

但是运行的时候报错了,如下所示:

然后我测了下cmd的前面部分,也就是

他的结果是:

可见结果是正确的,所以判断问题就出现在sed这部分,还请各位前辈帮忙看看。

漂亮男人
漂亮男人

全部回复(3)
我想大声告诉你

你把命令直接复制到命令行能用吗?如果能用就是你组织字符串出的错,比如双引号被你漏了,比如python中"%F"与'"%F"'是不一样的,还有'\2'与'\\2'是不一样的

怪我咯

刚开始工作,太拘泥于别人的思路了,我想了下直接尽可能的用python来实现功能。用python的替换功能搞定问题就好了

过去多啦不再A梦

不用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")))
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号