I have the following list:
dates = ['august_2020.xlsb',
'april_2020.xlsb',
'december_2020_part1.xlsb',
'january_2021.xlsb',
'february_2021.xlsb',
'may_2020.xlsb',
'september_2020_part2.xlsb',
'november_2020_part2.xlsb',
'june_2020.xlsb',
'july_2020.xlsb',
'january_2020.xlsb',
'december_2020_part2.xlsb',
'november_2020_part1.xlsb',
'october_2020_part2.xlsb',
'february_2020.xlsb',
'march_2020.xlsb',
'october_2020_part1.xlsb',
'september_2020_part1.xlsb']
What I want to do is to sort these strings by months and years such as my final list should look like this:
dates = ['january_2020.xlsb',
'february_2020.xlsb',
'march_2020.xlsb',
'april_2020.xlsb',
'may_2020.xlsb',
'june_2020.xlsb',
'july_2020.xlsb',
'august_2020.xlsb',
'september_2020_part1.xlsb',
'september_2020_part2.xlsb',
'october_2020_part1.xlsb',
'october_2020_part2.xlsb',
'november_2020_part1.xlsb',
'november_2020_part2.xlsb',
'december_2020_part1.xlsb',
'december_2020_part2.xlsb',
'january_2021.xlsb',
'february_2021.xlsb'
]
I've tried using: dates.sort() but this is what I'm getting:
dates = ['april_2020.xlsb',
'august_2020.xlsb',
'december_2020_part1.xlsb',
'december_2020_part2.xlsb',
'february_2020.xlsb',
'february_2021.xlsb',
'january_2020.xlsb',
'january_2021.xlsb',
'july_2020.xlsb',
'june_2020.xlsb',
'march_2020.xlsb',
'may_2020.xlsb',
'november_2020_part1.xlsb',
'november_2020_part2.xlsb',
'october_2020_part1.xlsb',
'october_2020_part2.xlsb',
'september_2020_part1.xlsb',
'september_2020_part2.xlsb']
I've also tried using this code:
from calendar import month_name
month_lookup = [x.lower() for x in list(month_name)]
sorted(dates, key = month_lookup.index)
However I'm getting this error: ''april_2020.xlsb' is not in list
None of my solutions seems to be working. If anyone knows how to get the desired output I would really appreciate your help.