我有一个test.txt
文件:
1.2.3.4 ['22', '9292', '9293']
1.2.3.5 ['232', '992']
我需要在
中对其进行转换1.2.3.4,22
1.2.3.4,9292
1.2.3.4,9293
1.2.3.5,232
1.2.3.5,922
最狡猾的方式是什么?
答案 0 :(得分:1)
您可以拆分此正则表达式的每一行:(?:\[|\]|, )
,将拆分的元素存储为变量。然后迭代元素2-and-up,并为每个元素打印[element 1][comma][the next element]
。
答案 1 :(得分:1)
from ast import literal_eval
with open('filein.txt') as fIn, open('fileout.txt', 'w+') as fOut:
for line in fIn:
first, second = line.split(None, 1)
for item in literal_eval(second):
fOut.write('{},{}\n'.format(first, item))
假设每行的列表部分是实际有效的Python列表,我们可以使用ast.literal_eval
来安全地解析它。所以我们只需迭代每一行,从列表部分拆分第一部分,解析列表部分。然后对于列表中的每个元素,我们在目标文件中写一行。