我有一个txt文件,我正在读取和打印它。
代码:
f=open('e://send.txt','r',encoding='UTF-8')
for i in f:
text=f.read(1024)
print(text+'\n\n\n')
f.close()`当文本打印时,缺少一些行。对于exp : txt文件是:
کشاورزی مینوشت را بنویسد! از نظر شما شاید این دو برنامه نویس هر دو
***یکسان باشند اما اتفاقی که می افتد این است که بازار ثابت نمی ماند!***
فرض کنید به خاطر توافق 但出炉的是:
بنویسد! از نظر شما شاید این دو برنامه نویس هر دو
missing lines
فرض کنید به خاطر توافق 发布于 2015-08-07 13:05:23
或者逐行读取文件:
for i in f:
print(i)或者把它读成块:
while True:
text = f.read(1024)
if not text:
break
print(text, eol='')但不要兼而有之。在您的代码中,被for循环读取到for中的文本将被忽略,这就是您丢失的数据。
发布于 2015-08-07 13:01:18
for i in f将遍历文件的行,read()将从中读取。随着迭代和读取将文件位置向前移动,最终会丢失一些数据。
试着在这里选择一个或另一个。如果这有帮助的话,read()将在EOF上返回一个空字符串。
发布于 2015-08-07 13:00:58
实际上,单循环从文件中读取两次,第一次迭代器语法(隐式),第二次读取调用。如果您使用的是for line in file成语,跳过显式read()。
with open('e:\\send.txt','r', encoding='UTF-8') as f:
for line in f:
print(line)https://stackoverflow.com/questions/31878246
复制相似问题