我试图用一些表打开一个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
任何线索?
答案 0 :(得分:1)
好的,以下两种解决方案有效:
xl = pd.ExcelFile(str(io))
和
xl = pd.ExcelFile(io.open('rb'))
(感谢第二个SSC)