例如,我有文件和单词"测试".文件是部分二进制文件,但有字符串"test".如何在没有加载的文件中找到文字(索引)的位置来存储这个文件?
除非打开文件,否则无法在文件中找到文本的位置.就像要求某人在不睁开眼睛的情况下阅读报纸一样.
要回答问题的第一部分,这是相对简单的.
with open('Path/to/file', 'r') as f:
content = f.read()
print content.index('test')
Run Code Online (Sandbox Code Playgroud)
\n\n\n内存映射文件对象的行为类似于字符串和 file\n 对象。然而,与普通字符串对象不同,它们是可变的。您可以在大多数需要字符串的地方使用 mmap 对象;例如,您可以使用 re 模块来搜索内存映射文件。由于它们\xe2\x80\x99是可变的,因此您可以通过执行 obj[index] = \'a\' 来更改单个字符,或者通过分配给切片来更改子字符串:\n obj[i1:i2] = '...'。您还可以从当前文件位置开始读取和写入数据,并通过 find() 遍历文件到不同的位置。
\n
例子
\n\nimport 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()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
19452 次 |
| 最近记录: |