Объединить CSV-файлы с одинаковыми именами из разных подпапок в одну CSV - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть три файла CSV каждый для определенного имени файла для нескольких файлов. Допустим, всего существует 20 имен файлов, поэтому всего 20 * 3csv файлов в трех разных папках.

Папка A-1001.CSV, 1002.CSV, 1003.CSV ...
Папка B-1001.CSV, 1002.CSV, 1003.CSV
Папка C-1001.csv, 1002.csv, 1003.csv ......

Я хочу получить один CSV-файл для каждого 1001, 1002, 1003, 1004 ..... Итого всего 20csv файлов

Как я могу это сделать? Поскольку файлы находятся в разных папках, глобус не работает (или я не знаю как)

1 Ответ

0 голосов
/ 06 апреля 2019

Я сделал следующие предположения:

  • все подпапки будут иметь корни в некотором известном каталоге parentdir
  • каждая подпапка содержит только соответствующие файлы CSV
  • файлы csv не содержат строк верхнего / нижнего колонтитула
  • каждая запись в файлах csv отделяется новой строкой
  • все записи в каждом файле имеют отношение

Это должно привести к созданию файла "concat.csv" в каждой подпапке с содержимым всех других файлов в той же папке. Я использовал фрагмент кода из этого другого ответа на stackoverflow для фактического объединения файлов.

import os
import fileinput

rootdir = 'C:\\Users\\myname\\Desktop\\parentdir'
os.chdir(rootdir)
children = os.listdir()
for i in children:
    path = os.path.join(rootdir, i)
    os.chdir(path)
    filenames = os.listdir()
    with open('concat.csv', 'w') as fout, fileinput.input(filenames) as fin:
        for line in fin:
            fout.write(line + '\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...