无法读取Python中的完整文本文件
我在用Python读取文件时遇到问题 我在Python中读取的文件大小是90MB。在word中打开时,它显示的总字数约为1400万。但是当我用Python阅读文件时,它给出了文件的长度约为900万字(8915710字) 当我通过python命令查看文件中的最后100个单词时无法读取Python中的完整文本文件,python,nltk,Python,Nltk,我在用Python读取文件时遇到问题 我在Python中读取的文件大小是90MB。在word中打开时,它显示的总字数约为1400万。但是当我用Python阅读文件时,它给出了文件的长度约为900万字(8915710字) 当我通过python命令查看文件中的最后100个单词时 print "The length of the Corpus is ", len(tokens), tokens[-100:] 我只从原始文件的中间得到单词 我使用的是64位Windows操作系统和32位版本的Pytho
print "The length of the Corpus is ", len(tokens), tokens[-100:]
我只从原始文件的中间得到单词
我使用的是64位Windows操作系统和32位版本的Python
PC规格:i7、1.8Gz、6GB RAM
我想理解为什么Python拒绝阅读超过8915710个单词
谢谢
代码:
我得到以下答案:
>> The number of words is 8915710
>> corp 53322476
>> raw 53322476
尝试将文件作为二进制文件处理:
f = open('file.txt', "rb")
chunkSize = 1024
dataChunk = f.read(chunkSize)
while len(dataChunk):
processData(dataChunk)
dataChunk = f.read(chunkSize)
替换此行:
f = open('testtext.txt')
f = open('testtext.txt', 'rb')
这一行:
f = open('testtext.txt')
f = open('testtext.txt', 'rb')
这几乎是不可能回答的,如果没有看到问题,是否有一些实际的原因需要立即将文件读取到内存中?为什么不一行一行地运行它们呢,例如f:do_smth(line)中的
行也可以打印len(raw)
和len(corp)
?我认为这不会有帮助(这就是为什么它没有回答),但是在调用lowercase()
@phihag>之后尝试del raw
,我添加了代码。我这样做了,我得到了15205560个单词…但是现在我如何从二进制中读取它们来读取最后一个单词并检查它呢?但是为什么要用二进制处理文件呢?有什么特别的原因吗?因为它有一个control-Z,这意味着它是一个二进制文件,而不是文本文件。是什么程序创建的文件?