我有以下腳本正確識別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