提供的代码运行时没有问题,并创建了文本文件,但它是空的。需要帮助才能理解错误所在。如果我运行代码,它运行良好,但一旦我试图打印到一个文件,我会得到空的结果。你知道吗
stdoutOrigin=sys.stdout
sys.stdout = open("log.txt", "w+")
listOfFiles = os.listdir('s:\\')
pattern = "*.txt"
for entry in listOfFiles:
if fnmatch.fnmatch(entry, pattern):
print (entry)
sys.stdout.close()
sys.stdout=stdoutOrigin
预期结果应该是一个文本文件,其中包含所有*.txt文件的条目以及它们所在的目录。你知道吗
你应该不要直接和
sys.stdout
乱搞,因为那样做很可能不会像你所希望的那样。你知道吗而可以将stdout重定向到print语句中的文件,如下所示:
您真正应该做的是利用Python的上下文管理器,以一种可读性和可维护性更高的方式将数据写入文件:
注意,这里不需要调用
f.close()
,因为上下文管理器(行with ... as ... :
)已经在幕后为您做了这件事。你知道吗相关问题 更多 >
编程相关推荐