逐行读取文件并使用 split() 函数使用 python 将行分成整数列表

Read the file line-by-line and use the split() function to break the line into a list of integers using python

我已经逐行阅读了文件,但现在不知道如何将这些行变成整数列表。

这是我的:

def adjMatrixFromFile(文件):

Our_numbers = []
file = open(file, 'r')
n =0
while True: 
    line = file.readlines()
    if not line:
        break
    for i in line: 
        numbers = i.split(' ')
        Our_numbers.append(numbers) 
new_ourNumbers = []
for d in Our_numbers:
    for k in d:
        result = k.split(' ')
        new_ourNumbers.append(result)    
return new_ourNumbers 

打印(adjMatrixFromFile(“文件”))

这是文件:

''''5 
    0 1 
    1 2  1 2  1 3  1 3  1 4 
    2 3 
    3 0 
    4 0  4 2 

用这个“tiny.txt”:

5 
0 1 
1 2  1 2  1 3  1 3  1 4 
2 3 
3 0 
4 0  4 2 

和这段代码:

def adjMatrixFromFile(file):
    Our_numbers = []
    file = open(file, 'r')
    line = file.readlines()

    for i in line:
        i=i.replace('\n','') #remove all \n 
        numbers = i.split(' ')
        numbers = filter(None, numbers) #remove '' in the list
        Our_numbers.extend(numbers) #add values from a list to another list

    Our_numbers = [int(i) for i in Our_numbers] #convert all element str -> int
    return Our_numbers

print(adjMatrixFromFile("tiny.txt"))

我得到了这个输出:

[5, 0, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 2, 3, 3, 0, 4, 0, 4, 2]

假设文件看起来像这样:

1 5 13
-7 8 99
10 0 1

使其成为一个简单的整数列表:

our_numbers = []
for line in open(filename):
    our_numbers.extend( [ int(num) for num in line.split() ] )

如果行中的某个元素无法解析为整数,您将收到 ValueError。

使其成为类似于“列表列表”的矩阵:

our_numbers = []
for line in open(filename):
    our_numbers.append( [ int(num) for num in line.split() ] )