鱼C论坛

 找回密码
 立即注册
查看: 3045|回复: 2

[已解决]拆分excel的代码打不开csv文件,求助

[复制链接]
发表于 2022-12-10 16:40:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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'


请大佬解惑。
最佳答案
2022-12-10 17:44:33
本帖最后由 阿奇_o 于 2022-12-10 17:47 编辑

xlsx文件和csv文件,不是同一类东西!!  —— 请自个去官网看看 xlrd 支不支持 csv?   

我盲猜是不支持的。(而且xlrd早起版本应该是连xlsx都不支持,只支持对 xls 的读取 )

csv 本质是一个文本文件,可以用 csv模块,或 pandas.read_csv(),甚至 自己with open() 自己解析一下都可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-10 17:44:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阿奇_o 于 2022-12-10 17:47 编辑

xlsx文件和csv文件,不是同一类东西!!  —— 请自个去官网看看 xlrd 支不支持 csv?   

我盲猜是不支持的。(而且xlrd早起版本应该是连xlsx都不支持,只支持对 xls 的读取 )

csv 本质是一个文本文件,可以用 csv模块,或 pandas.read_csv(),甚至 自己with open() 自己解析一下都可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-10 23:43:20 | 显示全部楼层
用pandas.read_csv已解决,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表