2012-12-22 55 views
0

这很简单,但我似乎无法正确理解。Python - 从文件读入列表

我有一个包含在表单

0 1 2 
3 43 
5 6 7 8 

和这些数字的文本文件。

我想读取这些数字并将其存储在列表中,以便每个数字都是列表中的一个元素。如果我将整个文件作为字符串读取,我如何拆分字符串以将这些元素分开?

谢谢。

+0

是否要将数字存储为整数或字符串? – vkontori

+0

我不认为正则表达式标签适用于此... – vkontori

+0

愚蠢的标记已被修复。 –

回答

3

您可以通过该文件对象迭代就好像它是行的列表:

with open('file.txt', 'r') as handle: 
    numbers = [map(int, line.split()) for line in handle] 

稍微简单的例子:

with open('file.txt', 'r') as handle: 
    for line in handle: 
     print line 
+0

哇。从来没有见过这种语法! – ApproachingDarknessFish

0

首先打开文件。然后迭代文件对象以获取其每一行并在该行上调用split()以获取字符串列表。然后将列表中的每个字符串转换为数字:

f = open("somefile.txt") 

nums = [] 
strs = [] 

for line in f: 
    strs = line.split() #get an array of whitespace-separated substrings 
    for num in strs: 
     try: 
      nums.append(int(num)) #convert each substring to a number and append 
     except ValueError: #the string cannot be parsed to a number 
      pass 

nums现在包含文件中的所有数字。