吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1989|回复: 27
收起左侧

[求助] 绝望了,来求助——Python这么难吗

[复制链接]
13832811375 发表于 2020-10-4 19:44
本帖最后由 13832811375 于 2020-10-5 20:35 编辑

搞了一下午,惹得老婆大怒,仍然没有搞通。到底都是哪里错了?

[Python] 纯文本查看 复制代码
import xlwings as xw
import pandas as pd
import os;import re
from dateutil import parser
app=xw.App(visible=False,add_book=False)
file_path=r'D:\MyData\MyDesk\Test0930'
file_lists=os.listdir(file_path)
valjts=[];valqbbs=[];jt=[];qbb=[];jtdt=[];qbbdt=[]
for f in file_lists:
    if not (f.endswith('.xls') or f.endswith('.xlsx')):            #   这个是对的!没有最外层“()”不行!!
        continue
    if f.startswith('~$'):
        continue
    wb=app.books.open(file_path+'/'+f)
    ws=wb.sheets[0]
    if ws['a2'].value == '序号':
        # jtdt = re.findall('(\d+)',(''.join(f.split('.')[1] + f.split('.')[2])))
        jtdt=[''.join(re.findall('(\d*)',f))[4:]]
        valjt0 = ws['a4:m436'].options(pd.DataFrame, index=False, header=1).value
        valjt1 = list(valjt0[valjt0['维护部门'] == '唐山所'].iloc[:, 2])      # 列名有重名所以用iloc
        valjts.append(jtdt+valjt1)            #   不能用“+”。“+”形成的是一维列表
        jt=ws['b5:b239'].value
    else:
        if ws['r15'].value == None:
            ws['r15'].value='唐山'
        # qbbdt = re.findall('(\d+)',(''.join(f.split('.')[1] + f.split('.')[2])))
        qbbdt=[''.join(re.findall('(\d*)',f))[4:]]
        valqbb0 = ws['a1'].options(pd.DataFrame, index=False, header=1, expand='table').value
        valqbb1 = list(valqbb0[valqbb0['所属管理所'] == '唐山']['运行情况'])
        valqbbs.append(qbbdt+valqbb1)
        qbb=ws['c2:c32'].value
    wb.save()
    wb.close()
# valjts.sort(key=lambda x:parse(x[0]))
# valqbbs.sort(key=lambda x:parse(x[0]))
valjts.sort(key=lambda x:parser.parse(x[0]))
valqbbs.sort(key=lambda x:parser.parse(x[0]))
nwb=app.books.add()
nws1=nwb.sheets.add('镜头一览表')
nws1['a3'].options(transpose=True).value=jt
nws1['b2'].options(transpose=True).value=valjts
nws2=nwb.sheets.add('情报板一览表')
nws2['a3'].options(transpose=True).value=qbb
nws2['b2'].options(transpose=True).value=valqbbs
nwb.save(r'D:\MyData\MyDesk\Test0930.xlsx')
nwb.close()
app.quit()


已经解决昨天的问题了,但今天又有新问题,代码在那个100401.py里了。我的问题是:
那些原来的Excel文件都是以日期命名的,写在新表后,我提取了日期做“列名”,然后以列名排序,但总是以(数)字符排序,不能实现咱们常见的排序。比如,92代表9月2号,应该排在913(9月13号)之前

文件和代码都在下面了,居然不让我上传附件!
链接:https://pan.baidu.com/s/1rP5uxp6UDWjRksPo1tEvTQ
提取码:jijo
复制这段内容后打开百度网盘手机App,操作更方便哦

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

thepoy 发表于 2020-10-4 20:01
本帖最后由 thepoy 于 2020-10-4 20:04 编辑

你到底要干什么?
说清目的和想要的结果,光发代码没有用,毕竟你的代码有问题
xiaodai_568 发表于 2020-10-4 20:07
a38758720 发表于 2020-10-4 20:08
蜘蛛侠哈喽 发表于 2020-10-4 20:21
qq380369832 发表于 2020-10-4 20:07
谢谢楼主奉献,谢谢啊

你在水贴吗
tbb233 发表于 2020-10-4 20:23
什么玩意。。。
evill 发表于 2020-10-4 20:35
猜测一下:楼主老婆是xx所的,工作需要统计excel文档的数据,让楼主写个自动化的工具,结果楼主搞了一天没搞定惹得老婆发怒,于是上论坛求助

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
610100 + 1 + 1 233333

查看全部评分

jy02427010 发表于 2020-10-4 20:55
你这个换老婆的借口可以啊
bookaccount 发表于 2020-10-4 21:02
这个主要是因为你不熟悉这个excel的库,查查stackoverflow之类的网站
绫月霏雪 发表于 2020-10-4 21:04
Python真的难,看见好多宣传使用Python代码处理excel表格,但是太费劲了……编写这样一段代码的功夫,表格手动都处理完了。如果是完全一样的格式定期重复统计的,excel宏录制它不香么
当然本身就有编程基础,或者学习之后【辅助】提高效率,是非常好的,我是感觉最近铺天盖地的Python速成快速处理文档的宣传有点过分夸大了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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