我将以ls为例:
我试过了:
str = call("ls")
str 存储 0。
我试过了:
str = call("ls>>txt.txt")
但没有运气(发生错误并且未创建 txt.txt)。
我如何执行这个直截了当的任务。
[我有进口电话]
编辑:call
只需在 shell 中运行一个命令,然后返回该命令的返回值。由于您ls
成功,因此call('ls')
返回 0。
如果您只是想运行ls
,那么我建议您使用glob
:
from glob import glob
file_list = glob('*')
如果你想做一些更复杂的事情,我的建议是这样使用subprocess.Popen()
:
from subprocess import Popen, PIPE
ls_proc = Popen('ls', stdout=PIPE, stderr=PIPE)
out, err = ls_proc.communicate()
请注意,在stdout
andstderr
关键字中,PIPE
可以用任何类似文件的对象替换,因此您可以根据需要将输出发送到文件。此外,您应该在使用 Popen.communicate() 之前阅读它,因为如果您调用的命令挂起,您的 python 例程也会挂起。