【问题标题】:How to Combine 2 Files with the Same Name in 2 Different Workbooks Using Python如何使用 Python 在 2 个不同的工作簿中合并 2 个同名文件
【发布时间】:2019-04-29 16:22:20
【问题描述】:

我有两个文件路径,C:\users\path1 和 C:\users\path2。每个路径都有相同的 10 个 excel 文件,具有相同的名称。例如,每个路径都有以下文件:

P1 P2 P3等

但是文件中的数据并不相同。 path2 中的文件有多张数据,而 path1 中的文件只有一张。

如何设置一个 python 循环来遍历两个路径,并根据匹配的文件名,将 path1 中的工作表添加到 path2 中的文件中?

目前,我没有设置任何代码。

【问题讨论】:

    标签: python directory filenames


    【解决方案1】:

    我不确定您添加工作表的确切含义(如果它是 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()
    

    【讨论】:

    • 谢谢,是的,我指的文件是纯 excel 文件。我会在描述中更新。
    • 这可能比python更好,如果你右键单击一个excel文件并单击“用->记事本打开”你会看到文件中有自定义压缩,所以你不能只是追加。相反,您应该使用 pandas "read_excel" 将每个文件中的每个工作表打开到一个数据框中,然后使用以下方法将它们全部组合起来:stackoverflow.com/questions/14225676/…
    • 这很好用,但是它会删除 filepath2 文件中的现有数据表。无论如何调整代码以将新数据添加为单独的工作表而不是替换现有数据?
    • 抱歉,我不明白 - 运行此文件后 filepath2 工作表是空白的吗?这真的不应该发生,这不是我得到的行为。你能详细说明一下吗?
    • 所以在运行任何代码之前,filepath2 中的文件包含 3 或 4 张数据,而 filepath1 中的文件只有一张数据(我想添加到 filepath2 文件中的表格) .运行代码时,filepath2 中的文件似乎只有来自 filepath1 的新工作表,而不是它们在运行代码之前拥有的现有工作表。让我知道这是否仍然令人困惑,我可以附上文件以供参考。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2014-10-13
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多