Python 根据生日对姓名和日期列表进行排序

Python 根据生日对姓名和日期列表进行排序,python,list,sorting,date,datetime,Python,List,Sorting,Date,Datetime,我有一个以下格式的文本文件: Robert, 03/07/1960 Michael, 24/11/1942 Simon, 14/08/1924 Sarah, 20/07/1935 Adam, 12/09/1944 Rachael, 24/09/1919 因此,is的名字和生日之间用逗号分隔,每个人都有一个新行。 使用IDLE,我想打印文本文件,并按出生日期从大到小列出 我修改了最初用于排序我在stackoverflow上读到的名字和分数的代码。然而,用约会代替分数带来了问题。我一直在阅读dat

我有一个以下格式的文本文件:

Robert, 03/07/1960
Michael, 24/11/1942
Simon, 14/08/1924
Sarah, 20/07/1935
Adam, 12/09/1944
Rachael, 24/09/1919
因此,is的名字和生日之间用逗号分隔,每个人都有一个新行。 使用IDLE,我想打印文本文件,并按出生日期从大到小列出

我修改了最初用于排序我在stackoverflow上读到的名字和分数的代码。然而,用约会代替分数带来了问题。我一直在阅读datetime模块的相关内容,并试图根据生日元素进行排序,但我似乎无法使其正常工作

import datetime
format = '%d/%m/%Y'

dates = []
with open("namedate.txt") as f:
    for line in f:
        line.strip()
        name, date = line.split(',')
        date = datetime.datetime.strptime(date, format)
        dates.append((name, date))

dates.sort(key=lambda s: s[1])

for name, date in dates:
    print(name, date)
我收到这个错误:

ValueError: time data ' 03/07/1960\n' does not match format '%d/%m/%Y'
因此,我需要从生日元素中删除“\n”,但无法使其正常工作

功能是:

import datetime
format = '%d/%m/%Y'

dates = []
with open("namedate.txt") as f:
    for line in f:
        line.strip()
        name, date = line.split(',')
        date = datetime.datetime.strptime(date, format)
        dates.append((name, date))

dates.sort(key=lambda s: s[1])

for name, date in dates:
    print(name, date)
import datetime
format = '%d/%m/%Y'

dates = []
with open("namedate.txt") as f:
    for line in f:
        line = line.strip()
        name, date = line.split(',')
        date = datetime.datetime.strptime(date.strip(), format)
        dates.append((name, date))

dates.sort(key=lambda s: s[1])

for name, date in dates:
    print(name, date.strftime(format))
输出将是:

('Rachael', '24/09/1919')
('Simon', '14/08/1924')
('Sarah', '20/07/1935')
('Michael', '24/11/1942')
('Adam', '12/09/1944')
('Robert', '03/07/1960')

line=line.strip()。这是我的下一个问题。