分割线后无法读取文件?

时间:2015-12-07 19:38:56

标签: file python-3.x if-statement for-loop

file = open("songs.txt" , "r")
songs = {}

for line in file:
    (song, name) = line.split(",")
    songs[song] = str(name)

print(songs)

songs = {}

print("Welcome to the Virtual Playlist!")

while True:
    print("")
    print("What would you like to do?")
    print("1. View the playlist")
    print("2. View playlist sorted by artist name")
    print("3. View playlist sorted by song name")
    print("5. Add a song")
    print("6. Exit")
    choice = input("").strip()

    if choice == "1":
        print(file.read())

我正在尝试从文件中读取然后输出其中的所有内容,如果我排除了读取每一行的部分并将其存储到字典中,它就可以正常工作。但如果包含该部分,它就不起作用。为什么会这样?

此外,当它将歌曲和艺术家存储到字典中时,它在某些条目中包含/ n,因为文件中有空格。有没有办法排除那个/ n的东西,因为我只是不喜欢歌曲名称/艺术家。

1 个答案:

答案 0 :(得分:0)

在此循环for line in file:之后,您处于文件末尾。因此,下一个file.read()无需阅读。如果您真的想再次阅读该文件,可以使用以下命令开头:

file.seek(0)

但您已经阅读songs中的所有歌曲,为什么要重新定义songs = {}并再次删除它们?为什么不:

if choice == "1":   
    for song, name in songs.items():
        print(name, song)

使用strip()删除\n个字符:

song, name = line.strip().split(",")