为什么子进程命令打印0而不是路径?

时间:2018-05-17 05:43:31

标签: python

我是python中的初学者

我试过以下代码。当我运行代码时,它不会给出错误,但是预期的输出必须在文件中,而是在控制台上打印输出。

在实际的test.txt文件中,它将条目设为0

为什么它打印0而不是pwd命令返回的路径?

from subprocess import call

path = call('pwd')

with open('test.txt', "w") as f :
    f.seek(0)
    f.write(str(path))
    f.close()

1 个答案:

答案 0 :(得分:0)

如果您想从外部命令获取输出,请使用@Paul Rooney所述的subprocess.check_output。您可以按如下方式更改程序,将pwd的输出打印到file:

from subprocess import check_output

path_bytes = check_output('pwd', shell=True)
path_str = path_bytes.decode('utf-8')

with open('test.txt', 'w') as f:
    f.write(path_str)