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