我正在写这段代码:
import os
os.system("start /wait cmd /c dir/s *.exe > Allexe1.txt")
它应该做的是获取所有exe文件并将结果写入文件。但我得到一个空文件。
注意:我已经尝试了相同的子进程,我总是得到错误错误[2]:找不到文件 我使用的是Windows 7,python2.7
感谢任何帮助。
答案 0 :(得分:2)
由于start /wait cmd /c
执行命令不需要os.system
,您应该可以通过此更改方式执行此操作:
import os
os.system("dir/s *.exe > Allexe1.txt")
但是,如果您要将其移至非Windows平台,则这不是可移植代码。
如果您希望以更便携的方式进行此操作,我建议您阅读此question/answer
import sys,os
root = "/home/patate/directory/"
for path, subdirs, files in os.walk(root):
for name in files:
# filter for files with an exe extension here
print os.path.join(path, name)
答案 1 :(得分:1)
您不应该以这种方式枚举Python中的文件。相反,请使用包含的glob
模块:
import glob
for filename in glob.glob('*.exe'):
print filename
或者,由于您似乎想要所有子目录,请使用os.walk()
文档中提到的fnmatch
和glob
。无论如何,你不应该为此付出代价。
答案 2 :(得分:1)
试试这个
import os
result = os.popen("start /wait cmd /c dir/s *.exe > Allexe1.txt").read()
if result is not None:
#this is your object with all your results
#you can write to a file
with open('output.txt', 'w') as f:
f.write(result)
#you can also print the result to console.
print result
else:
print "Command returned nothing"