gpt4 book ai didi

python - 使用 python 读取 XLS 文件时出错(小端序)

转载 作者:行者123 更新时间:2023-12-04 21:07:49 24 4
gpt4 key购买 nike

我使用 selenium 从网上下载了一个 XLS 文件。

我尝试了在 stack-overflow 和其他网站中找到的许多选项来读取 XLS 文件:

import pandas as pd
df = pd.read_excel('test.xls') # Read XLS file
Expected "little-endian" marker, found b'\xff\xfe'


df = pd.ExcelFile('test.xls').parse('Sheet1') # Read XLSX file
Expected "little-endian" marker, found b'\xff\xfe'

然后再次
from xlrd import open_workbook
book = open_workbook('test.xls')
CompDocError: Expected "little-endian" marker, found b'\xff\xfe'

我尝试了不同的编码:utf-8、ANSII、utf_16_be、utf16
我什至尝试从记事本或其他应用程序中获取文件的编码。

文件类型:Microsoft Excel 97-2003 工作表 (.xls)
我可以用 Excel 打开文件,没有任何问题。
令人沮丧的是,如果我用 excel 打开文件并按保存,我就可以使用前面的 python 命令读取文件。

如果有人可以提供我可以尝试的其他想法,我将不胜感激。我只需要用 python 脚本打开这个文件。

谢谢,
最大限度

解决方案 (有点困惑但简单)可能适用于任何类型的 Excel 文件:

从 python 调用 VBA 以打开并将文件保存在 Excel 中。 Excel“清理”文件,然后 Python 可以使用任何读取 Excel 类型的函数来读取它

受@Serge Ballesta 和@John Y 评论启发的解决方案。
## Open a file in Excel and save it to correct the encoding error 
import win32com.client
import pandas

downloadpath="c:\\firefox_downloads\\"
filename="myfile.xls"

xl=win32com.client.Dispatch("Excel.Application")
xl.Application.DisplayAlerts = False # disables Excel pop up message (for saving the file)
wb = xl.Workbooks.Open(Filename=downloadpath+filename)
wb.SaveAs(downloadpath+filename)
wb.Close
xl.Application.DisplayAlerts = True # enables Excel pop up message for saving the file

df = pandas.ExcelFile(downloadpath+filename).parse('Sheet1') # Read XLSX file

谢谢你们!

最佳答案

是什么意思PD 意思是??什么

Pandas 专为数据科学而生。在我看来,你必须使用 openpyxl (只能读写 xlsx)或 xlwt/xlrd (阅读 xls ......并只写 xls)。

from xlrd import open_workbook
book = open_workbook(<math file>)
sheet =....

它在互联网上有几个例子......

关于python - 使用 python 读取 XLS 文件时出错(小端序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com