Добавить DBF-файлы в один DBF-файл - PullRequest
1 голос
/ 20 марта 2019

У меня в каталоге много файлов, например ['FredrikstadAvst1.dbf', 'FredrikstadAvst2.dbf', ...].Я хочу написать скрипт Python для объединения этих файлов в новый "*.dbf" файл.

У меня есть скрипт Python, который почти выполняет свою работу.Но в выходном файле он все время перезаписывается.Поэтому, когда работа завершена, выходной файл содержит только последний файл в моем каталоге.

Вот мой сценарий:

import os, glob, shutil

folder_path = r'C:\Tom\Oppdrag_2019\Pendle\2018'
for filename in glob.glob(os.path.join(folder_path, '*.dbf')):

    fd = open(filename, 'r')

    List = []
    List.append(fd)

    print filename
wfd = open(r"C:\Tom\Oppdrag_2019\Pendle\FredrikstadAvst.dbf",'a')
shutil.copyfileobj(fd, wfd, 1024*1024*10)

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Почти работа сейчас. Но заголовок пишет для каждого файла. Я просто хочу, чтобы заголовок написал в первый раз. Как пропустить заголовок для каждого раза?

0 голосов
/ 20 марта 2019

Рассмотрим следующее:

import os, glob, shutil

folder_path = r'C:\Tom\Oppdrag_2019\Pendle\2018'
wfd = open(r"C:\Tom\Oppdrag_2019\Pendle\FredrikstadAvst.dbf",'w')
for filename in glob.glob(os.path.join(folder_path, '*.dbf')):
    fd = open(filename, 'r')
    shutil.copyfileobj(fd, wfd, 1024*1024*10)
    fd.close()
wfd.close()

Открывая файл перед циклом и закрывая только после итерации по каждому файлу dbf, он не должен перезаписываться. Я удалил List (это зарезервированное ключевое слово, поэтому постарайтесь его не использовать), потому что я не вижу, для чего оно здесь используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...