我正在尝试使用os.walk()
列出/
中以“e”开头的所有文件。但是代码似乎没有将输出重定向到文件,而是显示在IDE上。你知道吗
import os, sys
out = sys.stdout
with open('output.txt', 'w') as outfile:
sys.stdout = outfile
for root, dirs, files in os.walk('/'):
for file in files:
if file.startswith('e'):
print file
sys.stdout = out
谁能告诉我这个代码有什么问题吗。如果可能的话,还有一个更好的方法来完成上述任务。
在示例代码中,更改编辑:实际上,这在我的Python解释器中是有效的。但不管怎样,这样做是错误的。你知道吗sys.stdout
的值不会影响print
语句,因为print
不直接使用sys.stdout
。要打印到文件,应该在} 是一个语句,您可以这样指定一个文件:
print
语句或函数调用中指定文件。在Python 2中,^{在python3中,^{} 是一个带有可选
file
参数的函数:或者,可以使用open file对象的方法,例如
write()
:对于Python 2:
有关打印的说明,请参阅文档:https://docs.python.org/2/reference/simple_stmts.html#the-print-statement
对于Python 3:
相关问题 更多 >
编程相关推荐