用Python对Excel文件进行批量操作

OS库操作

#获取当前路径
import os
os.getcwd()

#获取当前路径下的所有文件名
import os
os.listdir(os.getcwd())

os.listdir(r'D:/test')#获取指定目录下的文件名

# 对文件重命名
os.rename('D:/Data-Science/share/data/test/test_old.xlsx'
          ,'D:/Data-Science/share/data/test/test_new.xlsx')

#创建文件夹
os.mkdir('D:/Data-Science/share/data/test11')

#删除文件夹
os.remove('D:/Data-Science/share/data/test/test_new.xlsx')


批量操作

批量读取文件下的多个文件

import pandas as pd

name_list = os.listdir('D:/Data-Science/share/data/test')

for i in name_list:
    df = pd.read_excel(r'D:/Data-Science/share/data/test/' + i)
    print('{}读取完成!'.format(i))

批量创建文件夹

month_num = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']

for i in month_num:
    os.mkdir('D:/Data-Science/share/data/' + i)
    print('{}创建完成!'.format(i))

批量重命名文件

import os

#获取指定文件下所有文件名
old_name = os.listdir('D:/Data-Science/share/data/test')

name = ["张明明","李旦","王玥月","陈凯"]

#遍历每一个姓名
for n in name:
    #遍历每一个旧文件名
    for o in old_name:
        #判断旧文件名中是否包含特定的姓名
        #如果包含就进行重命名
        if n in o:
            os.rename('D:/Data-Science/share/data/test/' + o, 'D:/Data-Science/share/data/test/' + n +"3月绩效.xlsx")

批量其他操作

批量合并多个文件

import os
import pandas as pd

#获取指定文件下所有文件名
name_list = os.listdir('D:/Data-Science/share/data/sale_data')

#创建一个相同结构的空DataFrame
df_o = pd.DataFrame({
    
    '日期':[],'销量':[]})

#遍历读取每一个文件
for i in name_list:
    df = pd.read_excel(r'D:/Data-Science/share/data/sale_data/' + i)
    #进行纵向拼接
    df_v = pd.concat([df_o,df])
    #把拼接后的结果赋值给df_o
    df_o = df_v

df_o   

将一份文件按照指定列拆分成多个文件

生成一列新的月份列
df_o['月份'] = df_o['日期'].apply(lambda x:x.month)

#遍历每一个月份值
for m in df_o['月份'].unique():
    #将特定月份值的数据筛选出来
    df_month = df_o[df_o['月份'] == m]
    #将筛选出来的数据进行保存
    df_month.to_csv(r'D:/Data-Science/share/data/split_data/' + str(m) + '月销售日报_拆分后.csv')

猜你喜欢

转载自blog.csdn.net/weixin_41867184/article/details/125557697