Python нумерует пустые строки при копировании
with open('C:\\...\\Demos\\first.txt','r') as firstfile, open('C:\\...\\reports\\second.txt','a') as secondfile:
for idx, line in enumerate(firstfile, start=1):
secondfile.write('{} {}'. format(idx, line))
Как можно обойти нумерацию, кроме проверки циклом?
Ответы (2 шт):
Автор решения: Sergey K.
→ Ссылка
Как вариант - не использовать функцию enumerate, а инкриментировать вручную, проверяя каждую строчку.
with open('C:\\...\\Demos\\first.txt','r') as firstfile, open('C:\\...\\reports\\second.txt','a') as secondfile:
idx = 1
for line in firstfile:
if line:
secondfile.write('{} {}'. format(idx, line))
idx += 1
Автор решения: kioley
→ Ссылка
Можно использовать функцию filter для firstfile:
with open('C:\\...\\Demos\\first.txt','r') as firstfile, open('C:\\...\\reports\\second.txt','a') as secondfile:
for idx, line in enumerate(filter(lambda s: s != '\n' , firstfile), start=1):
secondfile.write('{} {}'. format(idx, line))