Вы делаете return
, прежде чем начать что-либо писать.Переставьте код, чтобы исправить это, скорее всего, вы хотите переместить return
после записи.Кроме того, sort()
не возвращает ничего, кроме сортировки на месте, поэтому ваш write()
находится в вене.Вам нужно либо использовать sorted()
, либо отсортировать список, а затем написать.
Также вы должны использовать синтаксис with ...
для доступа к файлу или добавить правильную обработку ошибок.
Так что вы, скорее всего, хотите это:
def readlinesfromfilecriteria(filename, criteria = ['M','S','T']):
with open(filename) as fd:
lines = fd.readlines()
filteredlines = [l for l in lines if l[0] in criteria]
with open('2015PopEstimateSubset.csv','w') as fd:
fd.write(sorted(filteredlines))
readlinesfromfilecriteria("2015PopEstimatesComplete.csv")