[英]How to fix IndexError: String index out of range - Python
我正在嘗試為我的文本冒險制作一個解析器。 我使用了一個名為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
您正在剝離換行符( line = line.strip()
),因此如果一行為空,則只有一個空字符串並且line[0]
超出范圍。
您應該測試該行是否真實:
if line and line[0] == "-":
或者,更好的是,在循環的開頭,跳過空行:
for line in lines:
if line == '\n':
continue
# rest of code
由於您的文本中有許多“\n”,因此您應該在文件讀取時忽略它們。 嘗試這個:
with open(file, "r") as f:
lines = f.readline().splitlines()
f.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.