我试图从num.txt(1 3 2)中获取数字并将其设置为数组
from array import *
import sys
f = open('num.txt', 'r')
l = f.readlines()
f.close()
list = [1, 2, 3, 4, 5 ,6]
sclist = [l]
myArray = array('i', [])
myArray.fromlist(sclist)
for i in myArray:
print(i)
返回
TypeError: an integer is required (got type list)
如果我将其更改为myArray.fromlist(int(sclist)),我会得到
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
答案 0 :(得分:1)
此处的问题是l = f.readlines()
会返回一个字符串列表,然后您将其放入另一个列表sclist = [l]
中,所以只需执行myArray.fromlist(l)
。
在进行myArray.fromlist(l)
调用之前,请务必将您从文件中读取的内容转换为int。
答案 1 :(得分:1)
假设您的文件每行包含一个数字,您可以将sclist的分配更改为:
sclist = [int(s) for s in l]
希望这会奏效。我还建议您避免使用“list”作为变量名(在此示例中未使用),因为这将掩盖标准Python定义并可能导致混淆。