|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下,可以正常打开xlsx文件,但是打开csv文件就报下面的错误,求解:
from tkinter import filedialog
import pandas as pd
import xlrd
#xlrd 1.2.0版本
def main():
path = filedialog.askopenfilename().replace('/', '\\')
first_file_fh=xlrd.open_workbook(path)
# 选择要拆分的文件
first_file_sheet=first_file_fh.sheets()
# 获取sheet名
sheet_names=[]
for sheetname in first_file_sheet:
sheet_names.append(sheetname.name)
print('正在读取表格数据...')
df = pd.read_excel(path, sheet_name=sheet_names[0])
# 读取要拆分的sheet
setdata = input('请输入要拆分列的名称:')
print('正在拆分地址请稍等....')
list_c = df[setdata].unique()
# 获取要拆分列的内容
for c in list_c:
# 根据列的内容循环读取
df2=df[df[setdata]==c]
# 根据列的内容进行筛选
df2.to_csv('./拆分结果/'+c+'.csv', encoding='gbk',index=None)
#df2.to_csv('./excel_csv/auto_ok/'+c+'.csv', encoding='gbk',index=None)
# 筛选后的内容保存为CSV
if __name__ == '__main__':
main()
print('拆分完成')
报错误如下:
Traceback (most recent call last):
File "e:\dizhi\chaifen.py", line 32, in <module>
main()
File "e:\dizhi\chaifen.py", line 8, in main
first_file_fh=xlrd.open_workbook(path)
File "D:\Program Files (x86)\Python310\lib\site-packages\xlrd\__init__.py", line 148, in open_workbook
bk = book.open_workbook_xls(
File "D:\Program Files (x86)\Python310\lib\site-packages\xlrd\book.py", line 92, in open_workbook_xls
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
File "D:\Program Files (x86)\Python310\lib\site-packages\xlrd\book.py", line 1278, in getbof
bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8])
File "D:\Program Files (x86)\Python310\lib\site-packages\xlrd\book.py", line 1272, in bof_error
raise XLRDError('Unsupported format, or corrupt file: ' + msg)
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\xcb\xf9\xca\xf4\xce\xe5\xbc\xb6'
请大佬解惑。
本帖最后由 阿奇_o 于 2022-12-10 17:47 编辑
xlsx文件和csv文件,不是同一类东西!! —— 请自个去官网看看 xlrd 支不支持 csv?
我盲猜是不支持的。(而且xlrd早起版本应该是连xlsx都不支持,只支持对 xls 的读取 )
csv 本质是一个文本文件,可以用 csv模块,或 pandas.read_csv(),甚至 自己with open() 自己解析一下都可以。
|
|