我有一个输入文件(固定宽度格式)文本文件,如下所示:
id1|col2|col3|...|timestamp1,timestamp2,timestamp3,timestamp4,timestamp5
id2|col2|col3|...|timestamp1,timestamp2
id3|col2|col3|...|timestamp1
...
ID具有不同数量的时间戳。所需的输出结构应为:每个ID都应有一个时间戳,第二个时间戳应在不同的行上且具有相同的ID。
id1|col2|col3|...|timestamp1
id1|col2|col3|...|timestamp2
id1|col2|col3|...|timestamp3
id1|col2|col3|...|timestamp4
id1|col2|col3|...|timestamp5
id2|col2|col3|...|timestamp1
id2|col2|col3|...|timestamp2
id3|col2|col3|...|timestamp1
我试图在sql中阅读它,但这有点乏味。我正在寻找在Python或UNIX中是否有答案。非常感谢。
答案 0 :(得分:0)
您可以使用split('|')使用|
分隔符来剪切行,然后使用split(',')将最终字段剪切为时间戳列表
with open('/path/to/file', 'r') as f:
for line in f:
fields = line.split('|')
timestamps = fields[-1].split(',')
for timestamp in timestamps:
print('|'.join(fields[:-1]+[timestamp]))