[英]Python parse string
我有一個文件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
什么是最蟒蛇的方式呢?
你可以在這個正則表達式上拆分每一行: (?:\\[|\\]|, )
,將元素之一存儲為一個變量。 然后迭代元素2-up-up,並為每個元素print [element 1][comma][the next element]
。
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
來安全地解析它。 所以我們只需迭代每一行,從列表部分拆分第一部分,解析列表部分。 然后對於列表中的每個元素,我們將一行寫入目標文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.