文本文件就像
101#一个整数
abcd #a string
2#一个数字,表示下面有多少3线结构
1.4#some float number
2#一个数字,表示下一行中有多少个数字
1 5#2个数字
2.7#另一个浮点数
3#另一个号码
4 2 7#三个数字
,输出应该是这样的 [101, 'ABCD',[1.4,[1,5]],[2.7,[4,2,7]]]
我可以逐行执行,使用readlines(),strip(),int()和for循环,但我不确定如何像专业人士那样做。
P.S。可以有空格和制表符,也许在文本文件中随机插入空行。输入最初是针对C程序的,无关紧要:(
我的代码:
with open('data','r') as f:
lines = [line.strip('\n') for line in f.readlines()]
i=0
while(i<len(lines)):
course_id = int(lines[i])
i+=1
course_name = lines[i]
i+=1
class_no = int(lines[i])
i+=1
for j in range(class_no):
fav = float(lines[i])
i+=2
class_sched = lines[i].split(" ")
从文件中读取的变量将在之后处理
所有那些i + =看起来绝对可怕!对于这类任务来说似乎是一个很长的Python程序