Skip to main content
 首页 » 编程设计

python之如何正确地将元组列表写入 .txt 文件

2025年05月04日16unruledboy

我正在尝试维护一个名称和时间列表,按时间递增排序。

def listfile (name, time): 
 
    players = [] 
    strtime = str(time) 
    players.append((name, strtime)) 
    with open("playersScores.txt", "r") as f: 
        for line in f: 
            if line != '\n': 
                name, strtime = line.split(',') 
                players.append((name, strtime)) 
    f.close()   
 
    players.sort(key=lambda tup: tup[1]) 
 
    with open("playersScores.txt", "w") as f: 
        for (name, strtime) in players: 
            f.write("%s\n" % (name + "," + strtime)) 
    f.close()  

这基本上是有效的,但它在每一行下面都留下了一个空行,除了新添加的行。

我想要这样的东西:

Bob,32.82 
Bill,34.22 
Joe,39.09 
Bob,45.23 
George,46.08 

但我得到:

Bob,32.82 
 
Bill,34.22 
Joe,39.09 
 
Bob,45.23 
 
George,46.08 

Bill,34.22 是最后一个条目。

请您参考如下方法:

问题是在读取文件时,每行末尾的 \n 不会自动被剥离。在此处显示的代码中,变量 strtime 末尾仍包含一个 \n 字符。

name, strtime = line.split(',') 
players.append((name, strtime)) 

f.write() 调用中的\n 没问题。你只需要在阅读时去掉 \n 即可。 rstrip() 将从字符串右侧删除空白字符。

这样做:

name, strtime = line.split(',') 
players.append((name, strtime.rstrip()))