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



我是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()

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

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)

最新更新