将命令行输出写入文件

时间:2012-01-25 13:30:07

标签: python macos file unix ls

我正在编写一个脚本来清理我的桌面,根据文件类型移动文件。看起来,第一步是ls -1 /Users/user/Desktop(我在Mac OSX上)。那么,使用Python,我将如何运行命令,然后将输出写入特定目录中的文件?由于这将是未记录的,并且我将成为唯一的用户,如果它使用os.system(),我不介意(更喜欢?)。

3 个答案:

答案 0 :(得分:15)

您可以使用命令中的>将标准输出重定向到任何文件。

$ ls /Users/user/Desktop > out.txt

使用python,

os.system('ls /Users/user/Desktop > out.txt')

但是,如果您使用的是python而不是使用ls命令,则可以使用os.listdir列出目录中的所有文件。

path = '/Users/user/Desktop'
files = os.listdir(path)
print files

答案 1 :(得分:4)

在浏览python文档以运行shell命令并获取输出后,您可以使用check_output模块和{{1}}方法。

之后,您可以简单地将该输出写入具有标准Python IO功能的文件:subprocess

答案 2 :(得分:1)

要打开文件,您可以使用f = open(/Path/To/File)命令。语法为f = open('/Path/To/File', 'type'),其中'type'为r表示读取,w表示写入,a表示追加。执行此操作的命令是f.read()f.write('content_to_write')。要从命令行命令获取输出,您必须使用popen和subprocess而不是os.system()。 os.system()不返回值。您可以在popen here上阅读更多内容。