阅读一些海量文本文件时遇到问题。
我首先定义如下读取文本文件:
def reader(filename):
with open(filename, encoding='latin-1') as thefile:
contentsofthefile = f.read()
return contentsofthefile
现在我想拥有另一个使用上述功能的功能,例如:
def remover(filename):
a = reader(filename)
for line in a:
do this
这会产生以下问题:
OSError: [Errno 63] File name too long: 'In search of lost time - CHAPTER///1 \nThe characters, plotlines, ...."
似乎它尝试读取整个文件作为文件名?
答案 0 :(得分:2)
如果您要逐行处理文件,也没有理由不逐行读取。您实际上并不需要reader
函数,但是它可以很简单
def reader(filename):
return open(filename, encoding='latin1=1')
然后在reader
内使用 remover
:
def remover(filename):
with reader(filename) as f:
for line in f:
...
remover("somefile.txt")