T. *_*key 1 python file list sorted
我试图按名称和时间维护列表,按时间增加排序.
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()
Run Code Online (Sandbox Code Playgroud)
这基本上有效但除了新添加的行之外,它在每行下面留下一个空行.
我想要像:
Bob,32.82
Bill,34.22
Joe,39.09
Bob,45.23
George,46.08
Run Code Online (Sandbox Code Playgroud)
但我得到了:
Bob,32.82
Bill,34.22
Joe,39.09
Bob,45.23
George,46.08
Run Code Online (Sandbox Code Playgroud)
Bill,34.22 是最后一个条目.
问题是,当读取文件\n时,每行的末尾都会有一个不会自动被剥离的文件.在此处显示的代码中,变量最后strtime仍包含一个\n字符.
name, strtime = line.split(',')
players.append((name, strtime))
Run Code Online (Sandbox Code Playgroud)
将\n在调用f.write()的罚款.你只需要\n在阅读时剥掉它.rstrip()将从字符串的右侧删除空格字符.
做这个:
name, strtime = line.split(',')
players.append((name, strtime.rstrip()))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |