2012-01-25 70 views
5

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

+0

你想移动哪些文件?使用Python查看http://docs.python.org/library/shutil.html文件操作。 – 2012-01-25 13:32:02

+0

外壳脚本已足够 –

+1

如果您使用外壳脚本,请阅读有关管道和重定向的更多信息。 –

回答

13

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

$ 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 
+0

不错的一个。谢谢。 – Daniel

+0

ImportError:没有名为system的模块。 –

+0

@ Suda.nese如何尝试导入?你的Python版本是什么? – taskinoor

4

略读Python文档运行外壳命令,并且获得可以使用subprocess模块与check_output方法在该输出之后。

之后,您可以简单地将该输出写入具有标准Python IO函数的文件:File IO in python

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