文件读取和python中的for循环
发布时间:2020-12-20 11:33:56 所属栏目:Python 来源:网络整理
导读:我有这个文件: -01169-00134079-000... 我想对它们进行排序并将它们存储到文件中. 我读取文件将它们存储在列表中,对列表进行排序,然后将列表保存到文件中.问题是它从第二个-x开始. for line in file: temp_buffer = line.split() for i,word in enumerate(t
我有这个文件:
-0 1 16 9 -00 1 3 4 0 7 9 -000 ... 我想对它们进行排序并将它们存储到文件中. 我读取文件将它们存储在列表中,对列表进行排序,然后将列表保存到文件中.问题是它从第二个-x开始. for line in file: temp_buffer = line.split() for i,word in enumerate(temp_buffer): if "-" not in word: if word in index_dict: l1.append(word) else: l1.append(function(word)) else: l1.append(word) l1.sort() print(l1,file=testfile) del l1 l1 = [] 所以第一个循环它转到else语句并且只存储第一个-0而没有-0和-00之间的单词.我该怎么解决这个问题? -0 1 9 16 -00 0 1 3 4 7 9 -000 .... 解决方法
您可以使用itertools.groupby将数据“划分”为以 – 开头的行之间的组.从哪里开始 – 写出线,否则,写出排序的行,例如:
from itertools import groupby with open('input') as fin,open('output','w') as fout: for k,g in groupby(fin,lambda L: L.startswith('-')): if k: fout.writelines(g) else: fout.writelines(sorted(g,key=int)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |