使用Python中的struct.unpack从文件中读取整数

Alc*_*ott 1 python file-io struct

假设我有一个文件名num.txt如下:

1 2 3 4 5
6 7 8 9 0
Run Code Online (Sandbox Code Playgroud)

我想3 integers从这个文件中读取,就是这样1 2 3.

我知道struct.unpack可能会做到这一点,但我无法做到这一点.我是这样做的:

fp = open('num.txt', 'rb')
print struct.unpack('iii', fp.read(12))  #right?
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个吗?

PS

这就是我得到文件num.txt的方式:

fp = open('num.txt', 'wb')
fp.write('1 2 3 4 5\n6 7 8 9 0')
fp.close()
Run Code Online (Sandbox Code Playgroud)

agf*_*agf 5

您不用于struct从文本文件中读取数字.它用于从二进制文件中读取数据 - 其中第一个字节实际上0x01是字节顺序标记或字符的编码值'1'.

你只是想要

three_ints = [int(x) for x in numfile.readline().strip().split(' ')[:3]]
Run Code Online (Sandbox Code Playgroud)

如果你只对前三个数字感兴趣,或者

all_ints = [[int(x) for x in line.split()] for line in numfile]
Run Code Online (Sandbox Code Playgroud)

如果你想在每一行上listlists的ints.