我正在尝试创建一个python脚本来查找txt文件中的特定字符串 例如,我有文本文件dbname.txt包括以下内容:
Level1="50,90,40,60"
Level2="20,10,30,80"
我需要脚本来搜索文件中的用户输入并打印等于该值的输出,如:
Please enter the quantity : 50
The level is : Level1
我被困在文件的搜索部分? 任何建议?
提前致谢
答案 0 :(得分:1)
在这些有限的案例中,我建议使用正则表达式。
import re
import os
你需要一个文件来获取信息,为它创建一个目录,如果它不存在,然后写入文件:
os.mkdir = '/tmp'
filepath = '/tmp/foo.txt'
with open(filepath, 'w') as file:
file.write('Level1="50,90,40,60"\n'
'Level2="20,10,30,80"')
然后阅读信息并解析它:
with open(filepath) as file:
txt = file.read()
我们将使用带有两个捕获组的正则表达式,第一个用于Level,第二个用于数字:
mapping = re.findall(r'(Level\d+)="(.*)"', txt)
这将为我们提供元组对的列表。从语义上讲,我会考虑它们的关键和价值观。然后获取用户输入并搜索您的数据:
user_input = raw_input('Please enter the quantity: ')
我键入50,然后:
for key, value in mapping:
if user_input in value:
print('The level is {0}'.format(key))
打印:
The level is Level1
答案 1 :(得分:0)
使用mmap模块,这是最有效的方法。 mmap不会将整个文件读入内存(它按需分页)并支持find()和rfind()
with open("hello.txt", "r+b") as f:
# memory-map the file, size 0 means whole file
mm = mmap.mmap(f.fileno(), 0)
position = mm.find('blah')