Я пытаюсь настроить метод для получения словаря и проверки каждой строки в файле на наличие одного из ключей. Если ключ существует, то выведите значение из словаря.
Это то, что у меня есть до сих пор:
info = {'#check here 1':{'action':'read'}, '#check here 2':{'action':'delete'}}
with open(input_file_name, "r") as old_file, open(output_file_name, "w") as new_file:
lines = old_file.readlines()
for line in lines:
x = [k in line.strip() for k in info]
if any(x):
print("found key")
print(x)
print()
И это печатает:
found key
[True, False]
found key
[False, True]
Обычно , что я хотел бы сделать, это вложенный для l oop, где для каждой строки в файле, я l oop через словарь, чтобы проверить, присутствует ли какой-либо ключ. Однако мне сказали, что выполнение этого по одному для l oop, проходящего через каждую строку файла, будет более эффективным с точки зрения ресурсов. Есть ли способ для меня, чтобы достичь этого?
Редактировать: Кроме того, вот структура файла:
hello world #check here 1
how are you #check here 1
#check here 2
В настоящее время я пытаюсь выяснить, могу ли я установить регулярное выражение чтобы соответствовать этому вместо этого. Если я смогу это сделать, тогда я установлю соответствие в качестве переменной и использую эту переменную для поиска в словаре:
comment = re.compile(r'#.+')
for line in lines:
print(comment.match(line)
Однако это только соответствие #check here 2
, а не #check here 1