我们假设数据可以一行一行地处理,并且数据之间的没有相关性,那么我们有两种方法读取该文件。
def read_file(filename):
with open(filename, 'r', encoding='utf-8') as f:
for line in f:
yield line
line_content = read_file(filename="/data.txt")
for line in line_content:
print line
逐行读入,频繁的 IO 操作会导致处理效率很低。
pandas
模块 read_csv
函数 chunksize
参数可以设置每次读取的行数。
import pandas as pd
def read_file(filename, sep=',', chunksize=5):
reader = pd.read_csv(filename, sep=sep, chunksize=chunksize)
while True:
try:
yield reader.get_chunk()
except StopIteration:
break
if __name__ == '__main__':
g = read_file('/data.txt',sep="::")
for c in g:
print(c)