打开Excel文件时出现BadZipfile Pandas XLRD错误

时间:2017-01-12 12:13:36

标签: python-2.7 pandas xlrd

我目前正尝试在Windows上使用Python 2.7.10 :: Anaconda 2.3.0(64位)读取excel文件,并从其内容创建数据框。这是我的代码片段:

import argparse
import pandas as pd

# xl.py

# Adding an input argument 
parser = argparse.ArgumentParser()
parser.add_argument("-i","--input",help="Input Excel file to generate df",
                    type=argparse.FileType('r'))
args = parser.parse_args()

# Reading the Excel File
xls = pd.ExcelFile(args.input)
df = xls.parse('Sheet 1')

# printing for debug
print df.head()

运行以下内容时: python xl.py -i test.xlsx

我收到一个Traceback错误:

Traceback (most recent call last):
    File ".\xl.py", line 11
    File "C:\Users\me\Anaconda\lib\site-packages\pandas\io\excel.py", line 194, in __init__
       self.book = xlrd.open_workbook(file_contents=data)
    File "C:\Users\me\Anaconda\lib\site-packages\xlrd\__init__.py", line 399, in open_workbook 
       zf = zipfile.ZipFile(timemachine.BYTES_IO(file_contents))
    File "C:\Users\me\Anaconda\lib\zipfile.py", line 770, in __init__
        self._RealGetContents()
    File "C:\Users\me\Anaconda\zipfile.py", line 711 in _RealGetContents
       raise BadZipfile, "File is not a zip file"
zipfile.BadZipfile, "File is not a zip file"

当我将xlsx文件移动到运行python 2.7.5的64位GNU / Linux服务器时。我能够运行这个脚本没问题。但是,我需要它在windows中运行,因为我将使用pyinstaller使其在将来可执行(即删除位置args并允许人们双击它)。

知道Windows出现问题的原因吗?

感谢。

1 个答案:

答案 0 :(得分:0)

修改:已解决。我需要在二进制模式下阅读arguemnt以在Windows上解决这个问题:

parser.add_argument("-i","--input",help="Input Excel file to generate df", type=argparse.FileType('r')) args = parser.parse_args()