如何将命令输出存储在文件中

How to store command output in file

我需要将系统命令的输出存储在文本文件中。

例如:-

import os
os.system('ls -al')

其输出:

drwx------  2 root root  4096 Aug  7 12:08 .ssh
drwxr-xr-x  2 root root  4096 Feb 27  2021 Templates
-rw-r--r--  1 root root    63 Aug 11 20:29 txt
drwxr-xr-x  2 root root  4096 Oct 24 07:03 Videos
-rw-------  1 root root  6813 Jul 25 07:43 .viminfo
drwxr-xr-x  3 root root  4096 Mar  1  2021 .vscode
drwxr-xr-x  3 root root  4096 Aug  9 10:19 .wpscan
-rw-------  1 root root    98 Oct 24 16:13 .Xauthority
-rw-------  1 root root 27650 Oct 24 18:12 .xsession-errors
-rw-------  1 root root 40368 Oct 24 12:32 .xsession-errors.old
-rw-------  1 root root 24328 Oct 24 17:07 .zsh_history
-rw-r--r--  1 root root  8238 Feb 27  2021 .zshrc

我需要将此输出数据存储在文本文件中。请帮助我。

os.system("ls -al") 不会 return 您通常在 shell 中看到的输出,而只有 return 代码。 0 如果命令执行成功,1 如果没有,等等。阅读更多关于这个 here.

但您可以使用 subprocess.check_output() 这样做。 请注意,命令必须作为命令/参数列表传递给方法:

import subprocess
output = subprocess.check_output(["ls", "-al"])
open("output.txt", "w").write(output)

您可以使用>将命令行输出写入文件,如下所示:

import os
os.system('ls -al > output.txt')