我正在嘗試為我的文本冒險制作一個決議器。我使用了一個名為test.txt的文本檔案。我不斷收到IndexError: string index out of range。我怎樣才能解決這個問題?
決議器.py
def parse(file):
data = {}
with open(file, "r") as f:
lines = f.readlines()
f.close()
for line in lines:
line = line.strip()
if line[0] == "@":
name = line[1:]
name = name.replace("\n", "")
data[name] = {}
if line[0] == "-":
prop = line.split(":")
prop_name = prop[0].replace("-", "")
prop_name = prop_name.replace("\n", "")
prop_desc = prop[1][1:]
prop_desc = prop_desc.replace("\n", "")
data[name][prop_name] = prop_desc
return data
print(parse("test.txt"))
測驗.txt
@hello
-desc: Hello World! Lorem ipsum
-north: world
@world
-desc: World Hello! blah
-south: hello
uj5u.com熱心網友回復:
您正在剝離換行符 ( line = line.strip()),因此如果一行為空,則只有一個空字串并且line[0]超出范圍。
您應該測驗該行是否為真:
if line and line[0] == "-":
或者,更好的是,在回圈開始時,跳過空行:
for line in lines:
if line == '\n':
continue
# rest of code
uj5u.com熱心網友回復:
由于您的文本中有許多“\n”,因此您應該在讀取檔案時忽略它們。試試這個:
with open(file, "r") as f:
lines = f.readline().splitlines()
f.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396558.html
