Python 是否使用pandas.io.parsers.ExcelFile将excel文件从StringIO缓冲区读取到数据帧?
我想将字符串缓冲区读入数据帧。这样做的一个好方法似乎是使用pandas的ExcelFile功能。我试着做如下事情:Python 是否使用pandas.io.parsers.ExcelFile将excel文件从StringIO缓冲区读取到数据帧?,python,excel,pandas,openpyxl,stringio,Python,Excel,Pandas,Openpyxl,Stringio,我想将字符串缓冲区读入数据帧。这样做的一个好方法似乎是使用pandas的ExcelFile功能。我试着做如下事情: from pandas import ExcelFile as excel_handler excel_data = excel_handler(StringIO(file_stream.read()).getvalue()) 从那时起,我想可以使用ExcelFile.parse() 这会产生以下错误: <class 'openpyxl.shared.exc.Invalid
from pandas import ExcelFile as excel_handler
excel_data = excel_handler(StringIO(file_stream.read()).getvalue())
从那时起,我想可以使用ExcelFile.parse()
这会产生以下错误:
<class 'openpyxl.shared.exc.InvalidFileException'> [Errno 2] No such
file or directory: '
[Errno 2]没有这样的
文件或目录:'
关于如何从缓冲区读取文件有什么想法吗?已修复。我之前的代码中遗漏了调用文件_stream.read()的一部分。因此,在调用ExcelFile时,向其传递了一个空字符串,从而导致错误。需要删除getvalue()。下面是它应该如何进行:
from pandas import ExcelFile
excel_data = ExcelFile(StringIO(file_stream.read())
dataframe = excel_data.parse(excel_data.sheet_names[-1])
固定的。我之前的代码中遗漏了调用文件_stream.read()的一部分。因此,在调用ExcelFile时,向其传递了一个空字符串,从而导致错误。需要删除getvalue()。下面是它应该如何进行:
from pandas import ExcelFile
excel_data = ExcelFile(StringIO(file_stream.read())
dataframe = excel_data.parse(excel_data.sheet_names[-1])
什么是文件流?更重要的是,为什么不将其用作
ExcelFile('path/of/excel/file')
或ExcelFile(file)
…它在web2py框架内。在上下文中,创建缓冲区比指定文件路径更容易。我验证了StringIO(…)缓冲区按预期工作(即,在xlrd模块中使用它打开excel工作簿时没有问题)。您能不能只传递缓冲区?这不是我在上面代码中所做的吗?还是要删除getvalue()?这会产生一个错误:强制使用Unicode:need string或buffer,\u io.BytesIO found关于ExcelFile(file\u stream)
?什么是file\u stream?更重要的是,为什么不将其用作ExcelFile('path/of/excel/file')
或ExcelFile(file)
…它在web2py框架内。在上下文中,创建缓冲区比指定文件路径更容易。我验证了StringIO(…)缓冲区按预期工作(即,在xlrd模块中使用它打开excel工作簿时没有问题)。您能不能只传递缓冲区?这不是我在上面代码中所做的吗?还是要删除getvalue()?这会产生一个错误:强制使用Unicode:need string或buffer,\u io.BytesIO found关于ExcelFile(file\u stream)
?。read
返回字节。因此,您可以使用BytesIO
excel\u data=ExcelFile(BytesIO(file\u stream.read()).read
返回字节。因此,您可以使用BytesIO
excel\u data=ExcelFile(BytesIO(file\u stream.read())