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

时间:2015-02-19 04:17:16

标签: python text import

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

数字是:

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导入字符串,当它们是数字?!如何更改此...或者是否需要以不同方式导入数据?

谢谢:)

3 个答案:

答案 0 :(得分:3)

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

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

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()]#创建一个元素列表,其中每个元素是行(x)的每个空格分隔部分的结果。

答案 1 :(得分:3)

尝试:

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

a.read()接受文件大小的参数,只返回字符串类型

答案 2 :(得分:2)

尝试使用

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

这样你就会得到一个数字列表。另一方面,你得到了

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

因为你有换行符或回车符