将Python输出保存到日志
我有一个Python脚本,它运行了以下代码:
strpath = "sudo svnadmin create /svn/repos/" + short_name
os.popen (strpath, 'w')
我该如何把这个命令的输出存储到一个变量里,或者写到当前目录的日志文件中呢?
我知道,可能没有输出,但如果有的话,我需要知道。
3 个回答
0
你可以在你的bash部分这样做:
strpath = "sudo svnadmin create /svn/repos/" + short_name + ' > log.txt'
1
如果你不需要向命令写入内容,那就把'w'改成'r'就可以了:
strpath = "sudo svnadmin create /svn/repos/" + short_name
output = os.popen (strpath, 'r')
for line in output.readlines():
# do stuff
另外,如果你不想逐行处理的话:
strpath = "sudo svnadmin create /svn/repos/" + short_name
output = os.popen (strpath, 'r')
outtext = output.read()
不过,我还是建议你看看subprocess模块,这样可能更好。
4
使用 'r'
模式来打开管道:
f = os.popen (strpath, 'r')
for line in f:
print line
f.close()
想了解更多信息,可以查看 os.popen()
的文档。
其实,使用 subprocess
模块来执行外部命令会更好,因为它能让你对进程的执行有更多的控制,同时也能同时访问输入和输出流。