有人可以告诉我这个python代码出了什么问题吗?它看起来很愚蠢,因为代码非常简单,但我是编码的初学者,希望可以理解。
f = open("countries.txt", "r")
countries = []
for line in f:
line = line.strip()
countries.append(line)
f.close()
print(countries)
print(len(countries))
for country in countries:
if country[0] == "T":
print(country)
我一直收到以下错误:
line 16, in <module>
if country[0] == "T":
IndexError: string index out of range
答案 0 :(得分:6)
if country[0] == "T":
的长度为零,则 country
会崩溃。如果您的文件包含完全空行,则可能会发生这种情况。
尝试在追加到countries
时过滤掉空行:
for line in f:
line = line.strip()
if line:
countries.append(line)
答案 1 :(得分:0)
由于Kavin已经帮助您解决了问题,我只是写了一些代码来做同样的事情,但更像是Python代码。 这是编写代码的更Pythonic方式:
with open('countries.txt', 'r') as f:
countries = list(filter(lambda c: c.startswith('T'), (line.strip() for line in f.readlines())))
print(countries)