我有一份我正在读的文件。使用python 3.7
该文件是自动化的,因此文件的格式如下:
Computer #1 - gaming
spec 1 = something
spec 2 = something
spec 3 = something
other stuff = sadas
computer #2 - coding
spec 1 = something
spec 2 = something
spec 3 = something
other stuff = sadas
computer #n - etc
spec 1 = something
spec 2 = something
spec 3 = something
other stuff = sadas
我希望将信息存储到字典/数组中:
data ={“计算机#1":sepc1,spec2,spec3,"computer #2":sepc1,spec2,spec3,"computer #n":sepc1,spec2,spec3 }
lines = file_read.readlines()
for line in lines:
if 'computer #' in line:
data[line] = []
if 'spec1' in line:
# here I want to add that value/line to the the first key/value such that:
# data['computer #1'].append(line)
# data['computer #2'].append(line)
# data['computer #n'].append(line)
我拥有的文件很大,并且有相关的信息。上面的这些行只是为了说明我正在处理的
每次我们找到关键词(计算机#)时,我都试着添加一个计数器。但我不确定如何检查计数器更改的状态,以便将所有“查找/需要”行(specs)添加到数组中。
花了太多时间来解决这个问题。谢谢你的帮助。
发布于 2022-08-06 04:22:31
如果spec
可能以行形式出现(作为字符串或其他单词的一部分),则使用regex与spec \d+ =
模式匹配可能更安全:
import re
data = {}
with open("file.txt", 'r') as f:
for l in f.readlines():
if 'computer #' in l:
key = l.split('-')[0].strip()
data[key] = []
elif re.search(r'spec \d+ =', l):
val = l.split('=')[0].strip()
data[key].append(val)
print(data)
输出:
{'computer #1': ['spec 1', 'spec 2', 'spec 3'], 'computer #2': ['spec 1', 'spec 2', 'spec 3'], 'computer #n': ['spec 1', 'spec 2', 'spec 3']}
https://stackoverflow.com/questions/73257075
复制相似问题