将Python输出保存到日志

1 投票
3 回答
1775 浏览
提问于 2025-04-15 14:03

我有一个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 模块来执行外部命令会更好,因为它能让你对进程的执行有更多的控制,同时也能同时访问输入和输出流。

撰写回答