这是我想要阅读的文件。 (cube.obj)
#cube
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 0.0 1.0
v 0.0 0.0 1.0
v 0.0 1.0 1.0
v 0.0 1.0 0.0
v 1.0 1.0 0.0
v 1.0 1.0 1.0
f 1 2 3 4
f 6 7 8 5
f 2 3 8 7
f 1 4 5 6
f 3 4 5 8
f 1 2 7 6
我试图计算这部分中的元素数量:
f 1 2 3 4
f 6 7 8 5
f 2 3 8 7
f 1 4 5 6
f 3 4 5 8
f 1 2 7 6
所以这个案例是30.请注意,这也是将f计为元素
这是我到目前为止所做的。
def count_numOfFace(f):
with open(f) as fin:
ct = 0
for line in fin:
if line.strip():
if line.split()[0] == 'f':
# need help here
我对这个问题感到很困惑。 任何帮助是极大的赞赏。 谢谢你的时间。
答案 0 :(得分:3)
这是一个好的开始。
for line in fin:
toks = line.split()
if toks and toks[0] == 'f':
ct += len(toks) - 1
您不想计算行的长度 - 这是字符数(包括空格)。您想要计算从中拆分的项目数(减去第一个,“f”)。如果不保存line.split()的结果,则会丢失该数字。
toks将是一个字符串列表,例如['f', '1', '2', '3', '4']
答案 1 :(得分:1)
我认为以下内容可能有效:
def count_numOfFace(f):
with open(f) as fin:
ct = 0
for line in fin:
sline = line.strip()
if sline:
ssline = sline.split(' ')
if ssline[0] == 'f':
ct += len(ssline)
元素的数量应该等于因空间分割而产生的数组长度。