吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10068|回复: 35
收起左侧

[Python 转载] 一个用python写的整合表格的小工具

  [复制链接]
浮云。 发表于 2019-8-10 13:34
本帖最后由 浮云。 于 2019-8-10 14:22 编辑

自学python已经3个月了,遇到不少问题,感谢论坛的大佬帮助。这个脚本就一个作用:把一个文件夹下的表格汇总到一个表格里。因为工作要整合二十多份表格,都是一样的格式,就想用python写个,功能很简单,需要的可以拿去。
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
import os,csv,sys

adr = os.path.dirname(os.path.realpath(sys.argv[0]))#获取当前文件所在目录   __file__和realpath的差别,https://blog.csdn.net/qq_41817302/article/details/88684703
file_list =[]
def file_name(file_dir):
    for root, dirs, files in os.walk(file_dir):#files:当前路径下所有非目录子文件。root,当前目录路径。dirs:当前目录下的所有子目录
        for file in files:#遍历当前路径下所有非目录子文件
            if os.path.splitext(file)[1] == '.xlsx':#通过splitext把后缀跟名字分开,以列表格式,判断你要的格式,然后把路径加入进列表
                file_list.append(os.path.join(root,file))
    return file_list#返回列表
file_name(adr)

print('是否整合以下所有表格:')
for a in file_list:
    print(a)#打印当前文件夹的所有xlsx文件路径
print(input('任意键继续'))
excel_num = pd.ExcelFile(file_list[0])#读取列表里的第0个路径,使用sheet_name获取工作表数量
header_data = pd.read_excel(file_list[0],sheet_name=len(excel_num.sheet_names)-1,header=0)#读取文件
tr_header = header_data.columns#使用colunms获取每一列的列名
header_list =np.array(tr_header).tolist()#使用tolist转化成列表
#print(header_list)
f = open('汇总.csv','a',newline='',encoding='utf-8')  #创建一个汇总表格
write = csv.writer(f)  #实例化对象
write.writerow(header_list)

for i in file_list:
    excel = pd.ExcelFile(i)  #实例化对象通过ExcelFile 获取下列sheet的个数,直接使用excel.sheet_names可以获取sheet名字
    read_file = pd.read_excel(i,sheet_name=len(excel.sheet_names)-1,header = 0)  #通过read_excel读取,i 是路径 ,sheet_name是要打开的工作簿,可以是工作簿名字,也可以是索引,col确定标签行
    #print(read_file)
    #number = read_file.shape[0]-1
    #read_file.drop([number],inplace=True,axis=0) #删除标签行里指定字符的行,axis=0为行,1为列,inplace为重新赋值
    tr_read_file = np.array(read_file)  #通过array以及tolist把DF转化为list
    read_list = tr_read_file.tolist()
    print(read_list)

    for i in read_list:  #把获取到的数据写入
        write.writerow(i)
f.close()  #关闭表格

image.png
把表格和py文件放在一个文件夹下运行,运行结束就会出现一个汇总.csv的表格
image.png
image.png

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
daizhengvip + 1 + 1 我很赞同!
ke307 + 1 + 1 厉害?
IMRE + 1 + 1 用心讨论,共获提升!
hjdx001 + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| 浮云。 发表于 2019-8-10 14:14
pengtusheng 发表于 2019-8-10 13:48
不会英语怎么学啊! 教教下! 还有! 怎么知道 写的程序需要用到哪个函数?  哪些函数有没有一个  帮助文档 ...

我的英语基础也不好。。因为是自学,所以变量的名字用的都比较随意。。关于需要用到哪些函数,可以确定好制作项目以后,分解项目,比如我这个就三个步骤:
1.读取路径
2.读取表格内容
3.写入表格
然后你再一步步去查找每个步骤哪些库好用。。我是这样的。
13729178717 发表于 2019-8-10 13:47
pengtusheng 发表于 2019-8-10 13:48
不会英语怎么学啊! 教教下! 还有! 怎么知道 写的程序需要用到哪个函数?  哪些函数有没有一个  帮助文档!集合在一起的!
kge369 发表于 2019-8-10 13:52
有图或gif显示出来会比较直观点
ww52pj 发表于 2019-8-10 13:59
楼主坚持自学,好有毅力
ywqn 发表于 2019-8-10 14:17
老哥,代码的注释很详细,技术分享的很到位!谢谢了!
 楼主| 浮云。 发表于 2019-8-10 14:23
kge369 发表于 2019-8-10 13:52
有图或gif显示出来会比较直观点

已经更新了
 楼主| 浮云。 发表于 2019-8-10 14:24
ywqn 发表于 2019-8-10 14:17
老哥,代码的注释很详细,技术分享的很到位!谢谢了!

哈哈哈,记性不行,为了以后方便
jackmonica 发表于 2019-8-10 14:33
帮顶,同自学,三天打渔两天晒网,哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 01:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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