为了在C或Pascal中读取一些文本文件,我总是使用下面的代码片段来读取数据,直到EOF:
while not eof do begin
readline(a);
do_something;
end;
因此,我想知道如何才能在Python中简单快速地做到这一点?
发布于 2013-03-24 22:26:23
循环遍历文件以读取行:
with open('somefile') as openfileobject:
for line in openfileobject:
do_something()
文件对象是可迭代的,并在EOF之前产生行。将文件对象用作迭代器时,会使用缓冲区来确保读取性能。
您可以对标准输入执行相同的操作(不需要使用raw_input()
import sys
for line in sys.stdin:
do_something()
为了完成这幅图,可以使用以下命令完成二进制读取:
from functools import partial
with open('somefile', 'rb') as openfileobject:
for chunk in iter(partial(openfileobject.read, 1024), b''):
do_something()
其中,chunk
一次最多将包含来自文件的1024个字节,当openfileobject.read(1024)
开始返回空字节串时,迭代将停止。
发布于 2013-03-24 22:27:04
打开文件并逐行读取文件的Python习惯用法是:
with open('filename') as f:
for line in f:
do_something(line)
该文件将在上述代码的末尾自动关闭( with
构造负责这一点)。
最后,值得注意的是,line
将保留尾随的换行符。这可以使用以下命令轻松删除:
line = line.rstrip()
发布于 2014-10-27 19:53:57
您可以使用下面的代码片段逐行阅读,直到文件结束
line = obj.readline()
while(line != ''):
# Do Something
line = obj.readline()
https://stackoverflow.com/questions/15599639
复制相似问题