从 txt 文件中读取整数;不会被记录为整数

Reading integers from a txt file; not coming being recorded as itegers

我正在从文本文件中读取一长串数字。

人数是:

12
42 45
78 30 98
12 45 12 30 ...  and so on

我正在通过以下方式加载号码:

a = open('file', 'r')
lines = a.read()

当我输入第 [0] 行时,我应该得到结果 12,但我得到的却是 1。

当我检查我导入的号码类型时,我得到:

<type 'str'>

我尝试通过以下方式更改号码类型:

lines = int(lines)

但是我得到这个错误:

ValueError: invalid literal for int() with base 10:

为什么 python 导入字符串,而它们是数字?!我该如何更改...或者是否需要以不同的方式导入数据?

谢谢:)

文件的内容是字符串,而不是数字,因此您需要包含翻译它们的代码。

如果你的数字都是用空格分隔的,你可以这样做:

a = open( 'file', 'r' )
for line in a:
    numbers = [ int( x ) for x in line.split() ]
    # Do something with numbers

最后一行分为以下部分:

line.split() # 将一行分成 N 个元素,每个元素用空格分隔

int( x ) # 将字符串表示形式转换为整数

[ int( x ) for x in line.split() ] # 创建一个元素列表,其中每个元素都是 int( x ) 在行的每个空格分隔部分上的结果。

尝试使用

a = open('file', 'r')
lines = a.readlines()

这样你就会得到一个号码列表。另一方面,你得到

ValueError: invalid literal for int() with base 10:

因为你换行或回车 return 个字符

尝试:

with open('file') as f:
    array = []
    for line in f:
        array.append([int(x) for x in line.split()])

a.read() 接受文件大小的参数,并且只有 returns 一个字符串类型