我的.txt文件第一首歌是刀党互联网之友,第二首歌是加兰提斯-更大声,更难,更好。但是我的代码只输出第二首歌。为什么会这样呢?
##5.4 Jukebox
failinimi = input("Sisesta failinimi: ")
if failinimi == "jukebox.txt":
failinimi = "ut/jukebox.txt"
elif failinimi == "80ndad.txt":
failinimi = "ut/80ndad.txt"
elif failinimi == "eesti_muusika.txt":
failinimi = "ut/eesti_muusika.txt"
else:
failinimi = "ut/edm.txt"
album = open(failinimi, encoding = "UTF-8")
järg = 1
for lugu in album:
album_sisu = album.readline()
while album_sisu != "":
järg += 1
print("{}. {}".format(järg, album_sisu.strip()))
album_sisu = album.readline()
album.close>>> %Run ut.py
Sisesta failinimi: s
1. Galantis - Louder, Harder, Better发布于 2022-02-25 10:49:35
您已经在逐行迭代文件行,但也执行了album.readline(),这将丢弃前一行。没有必要:
with open(failinimi, encoding = "UTF-8") as album:
järg = 1
for lugu in album:
if lugu != "":
järg += 1
print("{}. {}".format(järg, lugu.strip()))如果可以使用with open(...,则不需要关闭该文件
还可以简化文件名的处理:
failinimi = input("Sisesta failinimi: ")
if failinimi in ["jukebox.txt", "80ndad.txt", "eesti_muusika.txt"]:
failinimi = "ut/" + failinimi
else:
failinimi = "ut/edm.txt"https://stackoverflow.com/questions/71264623
复制相似问题