Python печатает пустую строку в первой строке при записи в файл - PullRequest
2 голосов
/ 22 октября 2011

Я застрял на том, почему мой код печатает пустую строку перед записью текста в файл. Что я делаю, так это чтение двух файлов из заархивированной папки и запись текста в новый текстовый файл. Я получаю ожидаемые результаты в файле, за исключением того факта, что в первой строке файла есть пустая строка.

def test():
    if zipfile.is_zipfile(r'C:\Users\test\Desktop\Zip_file.zip'):
        zf = zipfile.ZipFile(r'C:\Users\test\Desktop\Zip_file.zip')
        for filename in zf.namelist():
            with zf.open(filename, 'r') as f:
                words = io.TextIOWrapper(f)
                new_file = io.open(r'C:\Users\test\Desktop\new_file.txt', 'a')
                for line in words:
                    new_file.write(line)
                new_file.write('\n')
    else:
        pass

    zf.close()
    words.close()
    f.close()
    new_file.close()

Вывод в new_file (перед первым "Это тестовая строка ..." есть пустая строка)

This is a test line...
This is a test line...
this is test #2
this is test #2

Есть идеи?

Спасибо!

1 Ответ

3 голосов
/ 22 октября 2011

Я предполагаю, что первый файл в zf.namelist() ничего не содержит, поэтому вы пропускаете цикл for line in words для этого файла и просто делаете new_file.write('\n'). Трудно сказать, не видя файлы, которые вы зацикливаете; возможно, добавьте несколько операторов отладки, которые выводят имена файлов и некоторую информацию, например, их размер.

...