gpt4 book ai didi

python - 解析文件以收集节标题和后续内容

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:06 24 4
gpt4 key购买 nike

我需要将输入文件的行(大写)合并为一行,如下所示:

file1-inp

=4455
AAAAAAAAAA
BBBBBBBBBBB
CCCCCCCCCC
=3433
GGGGGGGGGGGG
DDDDDDDDDDD
EEEEEEEEEEE
=44543
FFFFFFFFFFFFF
HHHHHHHHHHHHH

预期输出

=4455
AAAAAAAAAABBBBBBBBBBB
CCCCCCCCCC
=3433
GGGGGGGGGGGGDDDDDDDDDDDEEEEEEEEEEE
=44543
FFFFFFFFFFFFFHHHHHHHHHHHHH

我的代码

fp=open("file1","r")
a=[]
for line in fp:
if line[0]=="=":
print line.strip()
print "".join(a)
a=[]
else:
a.append(line.strip())

实际输出

=4455

=3433
AAAAAAAAAABBBBBBBBBBB
CCCCCCCCCC
=44543
GGGGGGGGGGGGDDDDDDDDDDDEEEEEEEEEEE

我知道这很傻,但是谁能帮我解决代码中的问题?

最佳答案

如果逻辑变得更复杂,可能更容易阅读和维护的替代方法——在 for 循环期间构建一个字典,然后打印(或任何其他逻辑):

fp=open("file1","r")
mydict = {}

for line in fp:
if line[0]=="=":
key = line.strip()
else:
mydict.setdefault(key,[]).append(line.strip())

for key, value in mydict.iteritems():
print key
print "".join(value)

值得注意:这种方法将(可能)影响输出过程中各部分的顺序,因为标准 Python dict 不保证键的顺序。如果您使用的是 Python 2.7 或更高版本,则可以使用 OrderedDict相反,它确实保留了首次插入键的顺序,并且是 dict 的子类,因此可以无缝交换。

关于python - 解析文件以收集节标题和后续内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314835/

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