调用pandas.ExcelFile时出现TypeError

时间:2017-01-19 09:52:31

标签: python-3.x pandas

我试图用一些表打开一个excel文件并继续收到此错误:

TypeError: unsupported operand type(s) for <<: 'str' and 'int'

这是我的代码:

import pandas as pd
from pathlib import Path
import sys

def file_lister(path, extension=None):
    if extension is None:
        return list(path.glob('*'))
    else:
        return list(path.glob('*' + extension))


fpath = Path().resolve().parent
fname = 'Accounts 2017 varios.xlsx'

try:
    io = list(fpath.glob(fname))[0]
except IndexError:
    file_list = file_lister(fpath, 'xlsx')
    raise Warning(('{} not founded. Available files:' + '\n\t{}' * len(
                   file_list)).format(fname, *[file for file in file_list]))

encoding = 'latin-1'

xl = pd.ExcelFile(io.open(encoding=encoding))

另外,我使用以下方法得到同样的错误:

pd.read_excel(io.open(encoding=sys.getfilesystemencoding()))

我可以正常打开open()文件。

我在Windows 8.1上使用python 3.4和pandas 0.16.2

任何线索?

1 个答案:

答案 0 :(得分:1)

好的,以下两种解决方案有效:

xl = pd.ExcelFile(str(io))

xl = pd.ExcelFile(io.open('rb'))

(感谢第二个SSC)