再用pandas.read_csv,read_excel都处理不了xls文件,会遇到各种编码错误,

在网上查到的大多数都是对源文件进行修改格式,转换成utf-8格式(例如使用sublime,或者记事本)

不过对低版本的xls文件进行转换编码操作会损坏源文件

最开始我手动使用excel对xls另存为保存为csv文件在用pd.read_csv进行处理,部分数据确实可以处理

不过对于长整形数类型会修改数据,例如xls中的数据是‘10000000001’,在wps,excel(我都尝试了一下转换成csv文件),在处理后的csv文件中原来的数据变成了‘1E01’,变成了一个字符串类型,在没有这种数据的时候可以这么处理,也确实快

有这种数据只能使用xlrd库来处理xls文件了,写入新文件我用的是xlsxwriter库,来进行将数据写入新的表格中,部分代码如下:

for i in type1:wb = xlrd.open_workbook(r'{}.xls'.format(i), encoding_override='gbk')sheet = wb.sheet_names()ws = wb.sheet_by_index(0)nrows = ws.nrowsfor num in range(3, nrows - 1):l = ws.row_values(num)for biaotou in flag:dic[biaotou].append(l[flag.index(biaotou)])

encoding_override这个参数主要针对的是编码问题,大家视情况而定

写入新文件函数如下:

def write_into_column(sheet,all_data,left_up,step):#以列写入eng_li = [chr(i) for i in range(65, 91)] + ['AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CQ', 'CR', 'CS', 'CT', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF', 'DG', 'DH', 'DI', 'DJ', 'DK', 'DL', 'DM', 'DN', 'DO', 'DP', 'DQ', 'DR', 'DS', 'DT', 'DU', 'DV', 'DW', 'DX', 'DY', 'DZ', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF', 'EG', 'EH', 'EI', 'EJ', 'EK', 'EL', 'EM', 'EN', 'EO', 'EP', 'EQ', 'ER', 'ES', 'ET', 'EU', 'EV', 'EW', 'EX', 'EY', 'EZ', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF', 'FG', 'FH', 'FI', 'FJ', 'FK', 'FL', 'FM', 'FN', 'FO', 'FP', 'FQ', 'FR', 'FS', 'FT', 'FU', 'FV', 'FW', 'FX', 'FY', 'FZ', 'GA', 'GB', 'GC', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GJ', 'GK', 'GL', 'GM', 'GN', 'GO', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GV', 'GW', 'GX', 'GY', 'GZ', 'HA', 'HB', 'HC', 'HD', 'HE', 'HF', 'HG', 'HH', 'HI', 'HJ', 'HK', 'HL', 'HM', 'HN', 'HO', 'HP', 'HQ', 'HR', 'HS', 'HT', 'HU', 'HV', 'HW', 'HX', 'HY', 'HZ', 'IA', 'IB', 'IC', 'ID', 'IE', 'IF', 'IG', 'IH', 'II', 'IJ', 'IK', 'IL', 'IM', 'IN', 'IO', 'IP', 'IQ', 'IR', 'IS', 'IT', 'IU', 'IV', 'IW', 'IX', 'IY', 'IZ', 'JA', 'JB', 'JC', 'JD', 'JE', 'JF', 'JG', 'JH', 'JI', 'JJ', 'JK', 'JL', 'JM', 'JN', 'JO', 'JP', 'JQ', 'JR', 'JS', 'JT', 'JU', 'JV', 'JW', 'JX', 'JY', 'JZ', 'KA', 'KB', 'KC', 'KD', 'KE', 'KF', 'KG', 'KH', 'KI', 'KJ', 'KK', 'KL', 'KM', 'KN', 'KO', 'KP', 'KQ', 'KR', 'KS', 'KT', 'KU', 'KV', 'KW', 'KX', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LD', 'LE', 'LF', 'LG', 'LH', 'LI', 'LJ', 'LK', 'LL', 'LM', 'LN', 'LO', 'LP', 'LQ', 'LR', 'LS', 'LT', 'LU', 'LV', 'LW', 'LX', 'LY', 'LZ', 'MA', 'MB', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MI', 'MJ', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NB', 'NC', 'ND', 'NE', 'NF', 'NG', 'NH', 'NI', 'NJ', 'NK', 'NL', 'NM', 'NN', 'NO', 'NP', 'NQ', 'NR']first_eng = re.findall('^[A-Z]+', left_up)[0]index = eng_li.index(first_eng)num = re.findall('\d+', left_up)[0]if step==0:for i,value in enumerate(all_data):res_eng = eng_li[index+i]if is_last_float(value):sheet.write_column(res_eng + num, value[:-1])#插入除了最后一个 (纵向插入)sheet.write(res_eng + str(int(num)+len(value[:-1])), value[-1],percent_format)#插入最后一个else:sheet.write_column(res_eng+num,value)else:for i,value in enumerate(all_data):res_eng = eng_li[index+i*step]if is_last_float(value):sheet.write_column(res_eng + num, value[:-1])#插入除了最后一个 (纵向插入)sheet.write(res_eng + str(int(num)+len(value[:-1])), value[-1],percent_format)#插入最后一个else:sheet.write_column(res_eng+num,value)

这个是以列来写入新文件,传入的参数分别是对应的sheet,data是传入的数据eg:[[1,2,3],[4,5,6]] 结果就是第一列写入1,2,3,姐跟着右边数第一列写入4,5,6,left_up是写入的位置,step是跳跃写入。

workbook = xlsxwriter.Workbook('aaa1.xlsx')
sheet_first = workbook.add_worksheet("sheet1")
...
workbook.close()

主要就这些

python 处理xls遇到的坑相关推荐

  1. python读取xls文件_从python中的xls读取unicode

    我正在尝试使用 Python读取.xls文件.该文件包含多个非ascii字符(即äöü).我已经尝试过使用openpyxls和xlrd(我对xlrd寄予厚望,因为它无论如何都会读取unicode中的所 ...

  2. python读取 xls,xlsx,csv,doc,docx,pdf 格式的文件

    前言 利用python读取 xls,xlsx,csv,doc,docx,pdf 格式的文件 python版本3.10.4 读取xls pip install xlrd==2.0.1 wps的.et文件 ...

  3. Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)

    1.背景 上一篇帖子介绍了思路调整的过程,我的目标从"消灭止损单"(越来越保守)改为"追大肉"(允许有止损单,盈利超过损失就行). Python美股量化交易填坑 ...

  4. Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)

    Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+': not supported') 只需要下载pyexce ...

  5. Python美股量化交易填坑记录——13b.Vegas隧道交易机器人(实盘记录)

    1.背景 上一篇帖子介绍了该算法的原理和八天的实盘记录: Python美股量化交易填坑记录--13a.Vegas隧道交易机器人_ChristopherShen的博客-CSDN博客 经过八天实盘后,已经 ...

  6. Python使用pyinstaller的各种坑+解决方案

    Python使用pyinstaller的各种坑+解决方案 大家都说pyinstaller好用,为啥我总遇到重重考验... 坑1:别用Python3.6,这个版本的解释器和pyinstaller兼容有大 ...

  7. Python读取大文件的坑与内存占用检测

    Python读取大文件的"坑"与内存占用检测 1.read()与readlines() with open(file_path, 'rb') as f:sha1Obj.update ...

  8. python 保存xls文件

    python 保存xls文件 代码 import xlwt #进行excel操作#保存数据xls def saveData(datalist,savepath):book = xlwt.Workboo ...

  9. python urllib3 上传大文件,python urllib3 multipart/form-data 的坑

    python urllib3 multipart/form-data 的坑 ################################3.上传文件时带了个header与urllib3.reque ...

  10. 使用python处理wps表格_【使用Python操作XLS文件+wps中叫et+】 - #1

    2009年12月08 - 有一次TE需要一个**信息列表,我用python导出了一个txt文件丢给了他们,结果他们很不悦哇,呵呵,因为他们要把几百项数据人肉到xls文件中作为列表输出,工作量太大,便要 ...

最新文章

  1. 量子物理学家:如果宇宙中所有物体突然消失,会剩下一个「空宇宙」吗?
  2. python中的time库安装步骤-python中time库的实例使用方法
  3. 算法提高课-图论-有向图的强连通分量-AcWing 1174. 受欢迎的牛:tarjan算法求强连通分量、tarjan算法板子、强连通图
  4. Java中的String、StringBuffer、StringBuilder的区别和使用范围
  5. eclipse xml文件中按没有提示
  6. android tag定义快捷键,Android Studio快捷键生成TAG、Log.x日志输出介绍
  7. java内部类基础(静态内部类)
  8. Linux | Ubuntu:十年,十个关键时刻
  9. 数字图像处理 采样定理_数字图像处理基础知识总结
  10. Perl opendir()函数
  11. 10.GitLab 服务器和外部服务集成
  12. 树莓派使用无线网卡上网相关命令
  13. QQ的DLL文件修改大全!
  14. f分布表完整图a=0.01_基于时频分布和CNN的信号调制识别分类方法
  15. 洛谷P4568飞行路线
  16. 正弦波叠加成及波的分解
  17. 海康威视曲面大屏出现花屏,闪烁等现象该如何解决?
  18. Win10 / 11新电脑最简单跳过联网激活和使用本地账户登录方法
  19. 在for循环中运行setTimeout的三种情况
  20. 读书笔记--《Effective C#》总结

热门文章

  1. 数学模型:优化模型(一)存贮问题
  2. 软件质量保证基本知识加复习建议
  3. maven添加ojdbc6.jar包
  4. 个人账目管理系统oracle,个人账务管理系统(论文).doc
  5. Android音视频系列(七):PCM音频单声道与双声道的相互转换
  6. 遥感大辞典_学习遥感必读的十本专业书
  7. MySQL联合查询及取别名
  8. PowerShell: 如何使用powershell处理Excel
  9. 设计模式学习笔记-装饰模式
  10. java简单代码练习