gpt4 book ai didi

python - 根据位置将文本文件的各个部分存储到多个字典条目中

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:02 27 4
gpt4 key购买 nike

Python 的极端初学者(对编码有些陌生)。四处搜索,得到了一些有用的提示,但我的具体情况比其他相关的 stackoverflow 帖子(至少我能找到)要复杂一些。

我有一个结果文本文件。文件中有一个特定部分,其中写有“摘要”,这是我想要集中收集的整个部分。 之后

Summary: 

行,有 5 个小节,它们有自己的数据,我想将它们存储为字典中的键。这些小节将被称为 level1、level2、-->level5。

每个小节的开头都有一行仅包含该小节的名称,即

level1:

所以,总结一下: 创建一个包含 5 个键(标记为 level1-->level5)的字典,每个键都包含该小节中的行数据,但请确保一旦到达后续级别,就停止保存先前键的数据。

这是我到目前为止所得到的(警告:以下是极其草率的代码,可能会给更有经验的编码人员带来痛苦):

results = sys.argv[1]
seen_start = False
seen_1 = False
seen_2 = False
seen_3 = False
seen_4 = False
seen_5 = False
results_matrix = {}
j = 'level1'
k = 'level2'
l = 'level3'
m = 'level4'
n = 'level5'

with open(results, "r") as f:

for line in f:
if line.find("Summary:") ==0:
seen_start = True
continue

if seen_start:

if line.find(j) ==0:
seen_1 = True
continue

elif line.find(k) ==0:
seen_1 = False
seen_2 = True
continue
elif line.find(l) ==0:
seen_2 = False
seen_3 = True
continue
elif line.find(m) ==0:
seen_3 = False
seen_4 = True
continue
elif line.find(l) ==0:
seen_4 = False
seen_5 = True
continue



if seen_1 and line <> '\n':
results_matrix[j] = (line.rstrip('\n'))
if line.find(k) ==0:
seen_1 = False
seen_2 = True
continue


if seen_2 and line <> '\n' :
results_matrix[k] = (line.rstrip('\n'))
if line.find(l) ==0:
seen_2 = False
seen_3 = True
continue
print results_matrix[k]
<小时/>

无论您相信与否,代码实际上正确保存了最新的小节,但将先前条目保存为该小节的最后一行。即 results_matrix[k] 将在这种情况下工作,但 results_matrix[j] 仅具有该部分最后一行的条目

<小时/>

非常感谢您的投入!

最佳答案

results_matrix[j] = (line.rstrip('\n')) 在每一行重写 results_matrix[j],因此只能看到最后一行。尝试添加:
results_matrix[j] = ""
for循环之前然后:
结果矩阵[j] = 结果矩阵[j] + 行
使用rstrip会将所有行一起运行。

关于python - 根据位置将文本文件的各个部分存储到多个字典条目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com