如何读取文本文件并将它们组合在元组中?

时间:2015-07-24 05:29:23

标签: python python-3.x

我是python的新手并尝试在python 3中执行以下操作

我有一个像这样的文本文件

1 2 3
4 5 6
7 8 9
.
.

我希望将其转换为像这样的元组组

((1,2,3),(4,5,6),(7,8,9),...)

我尝试过使用

f = open('text.txt', 'r')
f.readlines()

但是这给了我一个单词的列表。

任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:4)

使用csv模块的方法 -

>>> import csv
>>> f = open('a.txt','r')
>>> c = csv.reader(f,delimiter='\t') #Use the delimiter from the file , if a single space, use a single space, etc.
>>> l = []
>>> for row in c:
...     l.append(tuple(map(int, row)))
...
>>> l = tuple(l)
>>> l
(('1', '2', '3'), ('4', '5', '6'), ('7', '8', '9'))

虽然如果你真的不需要元组,不要使用它们,最好把它们留在列表中。

上述代码中的rowl最初都是列表。

答案 1 :(得分:2)

你可以试试这个,

>>> s = '''1 2 3
4 5 6
7 8 9'''.splitlines()
>>> tuple(tuple(int(j) for j in i.split()) for i in s)
((1, 2, 3), (4, 5, 6), (7, 8, 9))

对于您的情况,

tuple(tuple(int(j) for j in i.split()) for i in f.readlines())