我有一个要处理的 txt 文件 test.txt
内容是:
>列表名字
xxxxxxxxxxxxxxxx
xxxxxxxxxxxx
xxxx
>列表名字2
xxxxxxxxxxxx
xxxx
要做的处理是对 每个列表名字 下的 所有行 进行 某字符出现次数 的统计
我使用的读取方法是:
def ratio(string):
"""读取字符串计算比例的函数"""
# ...
with open('test.txt', 'r') as f:
for line in f:
line = line.strip()
if line.startswith('>'): # 判断开头是否为>
name = line[1:] # 去掉>
else:
r = ratio(line)
list1.append(name)
list1.append(r)
count.append(list1) # count 这个列表包含了子集
# 跳出for后, 对count这个列表依照ratio进行排序
print(count[-1]) # 输出count[-1]
我在 sampledata 时没有考虑到 xxxxxxxxxxxxx 有很多行,现在不懂的做法是如何在这个基础上将 xxx 行全部拼起来而不改变原有的思路(我只能想到这个了),或提供别的更快捷的思路。
请各位大大指教,谢谢。
編者: 我盡量依照你的意思整理了一下資訊, 但很多地方還是很模糊, 也許你可以補充一下...
看描述,似乎含有「列表名字」的行总是以
>
开头的?那么两个
>
之间的内容就是列表名字 + 行内容了吧。代码思路如下,没有实际跑过: