Как проверить, совпадает ли одно и то же имя файла в 2 каталогах, и добавить его с помощью python?

У меня есть 2 каталога с несколькими файлами (читаются как CSV). Имя файла обозначает конкретный номер клиента. Я читаю файлы следующим образом:

for dirpath, dirs, files in os.walk("/path/to/file/"):
    for file in files:
        directory1(os.path.join(dirpath, file))

Я читаю эти файлы как CSV.

Если имя файла (файла) каталога2 совпадает с именем файла в каталоге1, то я хочу добавить данные вместе как один файл.

Если имя файла (файла) отсутствует в каталоге1, скопируйте данные как есть.

Эти новые файлы следует сохранить в новом каталоге.

1 ответ

Можете ли вы попробовать следующее:

import os
import glob
import shutil

dir1 = "/path/to/dir1/"
dir2 = "/path/to/dir2/"
new_dir = "/path/to/dir3/"
fpaths_dir1 = glob.glob(os.path.join(dir1, '*.csv'))
fpaths_dir1 = [os.path.basename(fpath) for fpath in fpaths_dir1]
fpaths_dir2 = glob.glob(os.path.join(dir2, '*.csv'))
fpaths_dir2 = [os.path.basename(fpath) for fpath in fpaths_dir2]

for fpath in fpaths_dir1:
    if fpath in fpaths_dir2:
        f1 = os.path.join(dir1, fpath)
        f2 = os.path.join(dir2, fpath)
        # write your code to open both files
        # and contatenate
    else:
        f1 = os.path.join(dir1, fpath)
        f3 = os.path.join(new_dir, fpath)
        shutil.copyfile(f1, f3)

append the data together as one file оставляю это на ваше усмотрение, любезно дайте мне знать, если возникнут проблемы.

Другие вопросы по тегам