2

我将以ls为例:

我试过了:

str = call("ls")

str 存储 0。

我试过了:

str = call("ls>>txt.txt")

但没有运气(发生错误并且未创建 txt.txt)。

我如何执行这个直截了当的任务。

[我有进口电话]

4

1 回答 1

0

编辑: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()

请注意,在stdoutandstderr关键字中,PIPE可以用任何类似文件的对象替换,因此您可以根据需要将输出发送到文件。此外,您应该在使用 Popen.communicate() 之前阅读它,因为如果您调用的命令挂起,您的 python 例程也会挂起。

于 2013-08-01T00:41:39.093 回答