从文本文件中读取数字

时间:2019-05-06 20:23:49

标签: python python-3.7

我正在尝试从看起来像这样的文本文件中读取数字:

file.txt:
5
2 3 4 2 3 6 8 4 5

第一行包含一个表示整数 k 的数字。接下来是可变数量的整数,这些整数被空格分隔,我需要将它们作为整数输入到数组中,以便可以对它们进行一些算术运算。

import sys

fileName = sys.argv[1]

with open(fileName) as f:
    k = [int(x) for x in next(f).split()] # read first line, this will be k
    print("Value for _k_")
    print(k)
    arrayInts = [] # array used for the numbers
    for line in f: # read rest of numbers
        arrayInts.append([int(x) for x in line.split()])
    print("The list of integers:")
    print(arrayInts)

现在,arrayInts可以正常打印,但是类型为“列表”,我在进行算术运算时遇到了麻烦。由于某种原因,我也很难将其转换为整数数组。

有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

此行arrayInts.append([int(x) for x in line.split()])正在创建一个包含该行中整数的列表,然后将该列表追加到arrayInts列表中。因此,您将获得一个列表列表。如果仅要将所有int都放在一个列表中,则可以执行以下操作:

arrayInts = [] # array used for the numbers
for line in f: # read rest of numbers
    for x in line.split():
    arrayInts.append(int(x))