我的 .txt 檔案的第一首歌是 Knife Party - Internet Friends,第二首歌是 Galantis - Louder, Harder, Better。但我的代碼只輸出第二首歌。這是為什么?
##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
uj5u.com熱心網友回復:
您已經逐行遍歷檔案行,但隨后您也執行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://www.uj5u.com/yidong/433008.html
