簡體   English   中英

Python解析字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM