| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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() 自己解析一下都可以。  
 
 
 |   
 
 
 
 |