使用时出现Python错误os.popen公司()

2024-09-30 20:35:04 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我有一个运行在macosx上的python脚本,现在我需要修改它以支持在指定时间内更新SVN工作副本。但是,在学习之后,我发现SVN命令只支持将工作副本更新为指定的版本。在

所以我写了一个函数,从命令svn logxxx中获取信息,找到指定时间对应的版本。我的解决方案是:

process=os.popen('svn log XXX')
print process.readline()
print process.readline()
process.close()

为了使问题简单化,我只打印输出中的前2行。但是,当我执行脚本时,我收到了错误消息:svn:Write error:brokend pipe

我想我得到这个消息的原因是在我关闭Popen时svn命令一直在执行。所以错误信息出现了。在

有谁能帮我解决这个问题吗?或者给我另一个解决方案来达到目标。谢谢!在


Tags: 函数命令版本脚本消息readline时间副本
2条回答

请使用pysvn。它很容易使用。或使用子流程。在

如果最终执行以下操作,是否仍会出错:

print process.read()

如果使用os.popen公司或子流程。在

我每次使用svn log | head时也会遇到这个错误,它不是Python特有的。尝试类似于:

from subprocess import PIPE, Popen

process = Popen('svn log XXX', stdout=PIPE, stderr=PIPE)
print process.stdout.readline()
print process.stdout.readline()

取消stderr。你也可以用

^{pr2}$

相关问题 更多 >