从 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 一个字符串类型
我正在从文本文件中读取一长串数字。
人数是:
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 一个字符串类型