import os, os.path
a="path"
def getfiles(dirpat):
b = [s for s in os.listdir(dirpat)
if os.path.isfile(os.path.join(dirpat, s))]
b.sort(key=lambda s: os.path.getmtime(os.path.join(dirpat, s)))
return b
outfile='c://test.txt'
with open(outfile, 'w') as fileHandle:
lines = getfiles(a)
for line in lines:
print line
fileHandle.write(line)
Избегайте использования бессмысленных имен однозначных переменных. Я также не трогал вашу функцию getfiles (). Однако я переименовал file
и list
, так как это имена встроенных функций, которые вы скрываете, когда используете эти имена.
Вам также нужно открыть файл только один раз, а не один раз в строке. Вы обрезали файл при каждой записи. Использование with
гарантирует, что дескриптор файла будет закрыт, даже если у вас есть ошибка.
Редактировать: если вам не нужно распечатывать каждую строку перед ее написанием, вы можете просто иметь одну строку внутри блока with
: fileHandle.writelines(getfiles(a))
.