Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将不同excel文件中的工作表合并到一个工作簿中_Python_Excel_Pandas - Fatal编程技术网

Python 将不同excel文件中的工作表合并到一个工作簿中

Python 将不同excel文件中的工作表合并到一个工作簿中,python,excel,pandas,Python,Excel,Pandas,我试图理解一段不久前发布的代码。我找不到合适的解释,所以我写了这篇文章。我是python新手,如果有人能向我解释一下它是如何工作的,我将非常感激。我已经标记了我不理解的部分 代码本身: from pandas import ExcelWriter import glob import os import pandas as pd writer = ExcelWriter("output.xlsx") for filename in glob.glob("*.xlsx"):

我试图理解一段不久前发布的代码。我找不到合适的解释,所以我写了这篇文章。我是python新手,如果有人能向我解释一下它是如何工作的,我将非常感激。我已经标记了我不理解的部分

代码本身:

    from pandas import ExcelWriter
import glob
import os
import pandas as pd

writer = ExcelWriter("output.xlsx")

for filename in glob.glob("*.xlsx"):
    excel_file = pd.ExcelFile(filename)
    (_, f_name) = os.path.split(filename) <--- 
    (f_short_name, _) = os.path.splitext(f_name)
    for sheet_name in excel_file.sheet_names:
        df_excel = pd.read_excel(filename, sheet_name=sheet_name)
        df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False) <---

writer.save()

从导入ExcelWriter
导入glob
导入操作系统
作为pd进口熊猫
writer=ExcelWriter(“output.xlsx”)
对于glob.glob(“*.xlsx”)中的文件名:
excel\u file=pd.ExcelFile(文件名)

(u,f_name)=os.path.split(filename)您标记的只是创建者尝试在新的excel文件中命名工作表

(_, f_name) = os.path.split(filename)

# _: 'C:\\Desktop'
#f_name: 'file.xlsx'
它返回目录的开头和结尾。在本例中,尾部是文件名

df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False)
这是将数据框保存到excel文件中。 第一个论点:

  • ExcelWriter
    如果要创建包含多张工作表的excel文件
  • 如果没有,请使用
    文件路径
    (要将其保存在何处)
第二个参数:
每个数据帧的工作表名称

最后一个参数:
索引
或行名称

  • 正确:写
  • 错误:跳过
有关进一步资料:

os.path.split

。\u excel