如何在文件中找到单词的位置?

bdf*_*dfy 6 python

例如,我有文件和单词"测试".文件是部分二进制文件,但有字符串"test".如何在没有加载的文件中找到文字(索引)的位置来存储这个文件?

Pan*_*har 6

除非打开文件,否则无法在文件中找到文本的位置.就像要求某人在不睁开眼睛的情况下阅读报纸一样.

要回答问题的第一部分,这是相对简单的.

with open('Path/to/file', 'r') as f:
    content = f.read()
    print content.index('test')
Run Code Online (Sandbox Code Playgroud)


Nic*_*kis 2

您可以使用内存映射文件正则表达式

\n\n
\n

内存映射文件对象的行为类似于字符串和 file\n 对象。然而,与普通字符串对象不同,它们是可变的。您可以在大多数需要字符串的地方使用 mmap 对象;例如,您可以使用 re 模块来搜索内存映射文件。由于它们\xe2\x80\x99是可变的,因此您可以通过执行 obj[index] = \'a\' 来更改单个字符,或者通过分配给切片来更改子字符串:\n obj[i1:i2] = '...'。您还可以从当前文件位置开始读取和写入数据,并通过 find() 遍历文件到不同的位置。

\n
\n\n

例子

\n\n
import re\nimport mmap\n\nf = open(\'path/filename\', \'r+b\')\nmf = mmap.mmap(f.fileno(), 0)\nmf.seek(0) # reset file cursor\nm = re.search(\'pattern\', mf)\nprint m.start(), m.end()\nmf.close()\nf.close()\n
Run Code Online (Sandbox Code Playgroud)\n