繁体   English   中英

excel文件与python中的工作表合并

[英]excel file merge with sheets in python

我正在尝试使用sheet1sheet2附加许多excel文件。 我编写了以下代码:

import os
import pandas as pd

files = os.listdir("C:/Python27/files")
files
df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', 'Sheet2')
    df = df.append(data)

文件名示例: Total Apr 2014,Total Aug 2014

以下是错误:

Traceback (most recent call last):
  File "C:/Python27/filemerge2.py", line 10, in <module>
    data = pd.read_excel(f, 'Sheet1', 'Sheet2')
  File "C:\Python27\lib\site-packages\pandas\io\excel.py", line 170, in read_excel
    io = ExcelFile(io, engine=engine)
  File "C:\Python27\lib\site-packages\pandas\io\excel.py", line 227, in __init__
    self.book = xlrd.open_workbook(io)
  File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 395, in open_workbook
    with open(filename, "rb") as f:
IOError: [Errno 2] No such file or directory: 'Total Apr 2014.xls'

Python os.listdir将返回一个列表,其中包含给定目录中文件的相对名称 如果您从"C:/Python27/files" (或您的 xls 文件所在的任何文件夹)以外的文件夹运行脚本,则需要将所需文件的完整路径提供给read_excel()函数(或您调用的任何文件管理功能)。

要使您的脚本工作,只需将基本文件夹附加到文件名,它应该工作:

import os
import pandas as pd

folder = "C:/Python27/files"
files = os.listdir(folder)
files
df = pd.DataFrame()
for f in files:
    data = pd.read_excel(folder + '/' + f, 'Sheet1', 'Sheet2')
    df = df.append(data)

请注意, os.listdir将返回文件folder所有文件和目录,无论它们的类型如何。 在尝试使用read_excel()打开它之前,请确保执行一些文件类型检查(或者只在依赖此调用的 for 循环内容周围使用try-except块)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM