我想知道是否有可能将列表转换为特定的组,稍后我可以将它们放在表格格式中。
这是我需要分组的输出,我将它们转换成一个列表,这样我就可以很容易地以表格的方式对它们进行划分。
f=open("sample1.txt", "r")
f.read()下面是输出:
'0245984300999992018010100004+14650+121050FM-12+004699999V0203001N00101090001CN008000199+02141+01971101171ADDAY141021AY241021GA1021+006001081GA2061+090001021GE19MSL +99999+99999GF106991021999006001999999KA1120N+02111MD1210141+9999MW1051REMSYN10498430 31558 63001 10214 20197 40117 52014 70544 82108 333 20211 55062 56999 59012 82820 86280 555 60973=\n'这是我已经做过的事情。我已经成功地将其更改为一个列表,从而产生了以下输出:
with open('sample1.txt', 'r') as file:
data = file.read().replace('\n', '')
print (list(data))输出:
'0','2','4','5','9','8','4','3','0','0','9','9','9','9','2','0','1','8','0','1','1',‘1’,'0','0','0',‘0’'0','4','+','1','4','6','5','0','+','1','2','1','0','5','0','F','M','-','1','2','+','0','0','4','6','9','9','9','9','9','V','0','2','0','3','0','0','1','N','0','0','1','1','0','0','9','0','0','0','1','C','N','0','0','8','0','0','0','1','9','9','+','0','2','1','4','1','+','0','1','9','7','1','1','0','1','1','7',“1”,“A”,“D”,“D”,“A”,“Y”,“1”,“4”,“1”,“0”,“2”,“1”,“A”,“Y”,“2”,“4”,“1”,“0”,“2”,“1”,“G”,“A”,“1”,“0”,“2”,“1”,'+','0','0','6','0','0','1','0','8','1','G','A','2','0','6','1','+','0','9','0','0','0','1','0','2','1','G','E','1','9','M','S','L','+','+','9','9',‘+ ','9','9',’+ ','9','9','9','9','G','F','1','0','6','9','9','1','0','2','1','9','9','9','9','0','0','6','0','0','1','9','9','9','9','9','K','A','1','1',“2”,“0”,“N”,“+”,“0”,“2”,“1”,“1”,“1”,“M”,“D”,“1”,“2”,“1”,“0”,“1”,“4”,“1”,“+”,“9”,“9”,“9”,“M”,“W”,“1”,'0','5','1','R','E','M','S','Y','N','1','0','4','9','8','4','3','0',‘','3','1','5','5','8',’','6','3','0','0','1','1','0','2','1','4',‘','2','0','1','1','9','7',’','4','0','1','1','7',‘','5','2','0',’1‘'4',‘','7','0','5','4','4','8','2','1','0','8','3','3','3',’3 ','2','2','1','1',‘','5','5','0','6','2',‘','5','6','9','9','9',’','5','9','0','1','2',‘','8','8','2','2','2','8','6',’2 ','8','0',‘','5','5',’','6','0','9','7','3','=‘
我的目标是将它们分成以下几类:
0245,984300,99999,2018,01,01,0000,4,+1.... 属于每一列的位数是预先确定的,例如,第一列总是有4位,第二列总是有6位,依此类推。
我在考虑把它们连接起来。但我不确定这是否可能。
发布于 2019-11-13 19:11:23
您可以使用operator.itemgetter
from operator import itemgetter
g = itemgetter(slice(0, 4), slice(4, 10))
with open('sample1.txt') as file:
for line in file:
print(g(line))或者更好的是,您可以使用zip和itertools.accumulate动态地制作切片
indexes = [4, 6, ...]
g = itemgetter(*map(slice, *map(accumulate, zip([0]+indexes, indexes))))然后继续进行之前的操作
https://stackoverflow.com/questions/58835192
复制相似问题