我有以下脚本正确识别ASCII和非ASCII行,但我想每个文件,而不是每行的报告。由于我在循环内部有print,并且我有很多文件,所以输出得太多了。 如何修改此代码以获得每个文件的单个输出?它应该告诉我文件中是否有非ASCII文本。Python里面for循环readlines单输出
import os
for file in os.listdir('.'):
if file.endswith('.txt'):
with open(file) as f:
content = f.readlines()
for entry in content:
try:
entry.encode('ascii')
except UnicodeEncodeError:
print("it was not a ascii-encoded unicode string")
print(file)
else:
print("It may have been an ascii-encoded unicode string")
print(file)
删除你在打印报表,并把打印语句'开放(文件)外...'上下文管理器,但里面的'在文件...'块 –
如果你想想你的脚本结构,我认为你将能够确定解决方案。只需考虑在脚本评估内容中的每个条目时存储要打印的信息,并在内部for循环完成时打印该信息。 –
这取决于你想要的输出,以及在什么条件下。您的程序明确写入以评估每个文件的每一行,因此您必须明确告诉我们您要做什么。 – Prune