Как объединить 2 файла с одинаковым именем в 2 разных книгах с помощью Python - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть два пути к файлам: C: \ users \ path1 и C: \ users \ path2.Каждый путь имеет одинаковые 10 файлов Excel с одинаковыми именами.Например, каждый путь содержит следующие файлы:

P1, P2, P3 и т. Д.

, однако данные в файлах не совпадают.Файлы в path2 имеют несколько листов данных, а файлы в path1 имеют только один лист.

Как настроить цикл Python для прохождения обоих путей и, основываясь на совпадающих именах файлов, добавить лист из path1 в файл в path2?

В настоящее времяУ меня нет настроенного кода.

1 Ответ

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

Я не уверен, что именно вы подразумеваете под добавлением листов (если это документ Word или что-то, что вам понадобится что-то более особенное), но если это просто данные, это нормально.Если так или иначе это должно послужить хорошей отправной точкой для вас:

import pandas as pd
from pandas import ExcelWriter
import os

d1 = "asset\\path1"
d2 = "asset\\path2"

output_dir = "asset\\path3"

for fname in os.listdir(d1):
    sheets = []
    i = 0
    while True:
        try:
            sheets.append(pd.read_excel(os.path.join(d1, fname),sheet_name=i,encoding='sys.getfilesystemencoding()'))
        except IndexError:
            break
        except Exception as e:
            raise e
        i+=1
    sheets.append(pd.read_excel(os.path.join(d2, fname),sheet_name=0,encoding='sys.getfilesystemencoding()'))

    with ExcelWriter(os.path.join(output_dir,fname)) as writer:
        for n, df in enumerate(sheets):
            df.to_excel(writer,'sheet%s' % n, index = False, header=False)
        writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...