首页 > 解决方案 > 从文本文件中读取数字

问题描述

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

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 打印得很好,但是类型是“列表”,我在使用它进行算术时遇到了麻烦。出于某种原因,我也无法将其转换为整数数组。

有没有更简单的方法来做到这一点?

标签: pythonpython-3.7

解决方案


此行使用该行arrayInts.append([int(x) for x in line.split()])中的整数创建一个列表,然后将该列表附加到arrayInts列表中。因此,您会得到一个列表列表。如果您只是想要一个列表中的所有整数,您可以执行以下操作:

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

推荐阅读