File io 带有range函数的Python 3

File io 带有range函数的Python 3,file-io,python-3.x,range,tuples,File Io,Python 3.x,Range,Tuples,我可以在终端中键入以下代码,它可以工作: for i in range(5): print(i) 它将打印: 0 1 2 3 4 正如所料。然而,我试着写一个脚本来做类似的事情: print(current_chunk.data) read_chunk(file, current_chunk) numVerts, numFaces, numEdges = current_chunk.data print(current_chunk.data) print(numVerts) for

我可以在终端中键入以下代码,它可以工作:

for i in range(5):
    print(i)
它将打印:

0
1
2
3
4
正如所料。然而,我试着写一个脚本来做类似的事情:

print(current_chunk.data)
read_chunk(file, current_chunk)
numVerts, numFaces, numEdges = current_chunk.data
print(current_chunk.data)
print(numVerts)

for vertex in range(numVerts):
    print("Hello World")
当前_chunk.data通过以下方法获得:

def read_chunk(file, chunk):
    line = file.readline()
    while line.startswith('#'):
        line = file.readline()
    chunk.data = line.split()
其输出为:

['OFF']
['490', '518', '0']
490
Traceback (most recent call last):
  File "/home/leif/src/install/linux2/.blender/scripts/io/import_scene_off.py", line 88, in execute
    load_off(self.properties.path, context)
  File "/home/leif/src/install/linux2/.blender/scripts/io/import_scene_off.py", line 68, in load_off
    for vertex in range(numVerts):
TypeError: 'str' object cannot be interpreted as an integer
那么,为什么它不吐出“你好世界”490次呢?还是490被认为是一根弦

我这样打开文件:

def load_off(filename, context):
    file = open(filename, 'r')

'490'
是一个字符串。试试
int('490')

叹气吧,没关系,它确实是通过作为字符串计算得到的。将for循环更改为

for vertex in range(int(numVerts)):
    print("Hello World")
解决了这个问题