我在阅读一些大量的文本文件时遇到了问题。
我首先定义读取我的文本文件如下:
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, ...."
它似乎试图将整个文件作为文件名读取?
如果您要逐行处理文件,则没有理由不逐行读取文件。你真的不需要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")