将文本文件中的字符串(已经以元组格式)转换为元组列表

时间:2019-07-22 19:49:59

标签: python list file tuples converters

我有一个txt文件“ first.txt”,如下所示:

('sos','ten')

('rof','bcd')

etc.

我还有另一个看起来像这样的列表(我们称其为“第二”),它已经是元组格式(由两个字符串组成的元组):

json"value": [...]

我想比较这两个列表并得到它们之间的区别。为此,我需要将“ first.txt”转换为与列表“ second”相同的元组格式。

我尝试做一些列表理解,然后将字符串转换为元组并在“ \ n”上分割,但这只给出了('((abc,bcd)',''),而我想要一个由两个组成的元组字符串。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果您的文本元素都不包含(),,则可以使用常规字符串函数来“解析”元组,如下所示:

content = """\
(abc, bcd)
(cde, sos)
(feg, rof)
"""

result = [tuple(line.strip('()').split(",")) for line in content.splitlines()]

print(result)

输出:

[('abc', ' bcd'), ('cde', ' sos'), ('feg', ' rof')]

答案 1 :(得分:0)

我知道eval()是邪恶的,但是您可以尝试这样做:

>>> lst = []
>>> with open('second.txt') as f:
...     for line in f:
...         lst.append(eval(line, {}, {}))
...         
>>> lst
[('sos', 'ten'), ('rof', 'bcd')]

您的first.txt的格式实际上不是tuple的{​​{1}}。