python3指定目录所有excel_Python3批量移动指定文件到指定文件夹方法示例

引言

某人需求:以某excel中姓名信息为名建立一系列文件夹,分别将四个文件夹中与人名对应的文件汇总到该人名对应的文件夹中,共近200人,手工处理费时费力。

需求分解:

从excel中提取代号index和姓名信息name

以index_name格式批量建立文件夹namefolder

分别遍历四个文件夹及其子文件夹,将其中“文件名filename中包含姓名name”的文档移动到该人对应的新建的文件夹namefolder中

excel内容:

19101378316548443500979318.png

处理前:

19101378316659102003379167.png

处理后:

19101378316811561788741949.png

功能实现比较容易,权当记录。

环境:Python3.6+macOS10.12.5

代码

# -*- coding: utf-8 -*-

import os

import shutil

import xlrd

import string

### 创建多层目录

def mkdirs(path):

# 去除首位空格

path = path.strip()

# 去除尾部 \ 符号

path = path.rstrip("\\")

# 判断路径是否存在

# 存在 True

# 不存在 False

isExists = os.path.exists(path)

# 判断结果

if not isExists:

# 创建目录操作函数

os.makedirs(path)

# 如果不存在则创建目录

print(path + ' 创建成功')

return True

else:

# 如果目录存在则不创建,并提示目录已存在

print(path + ' 目录已存在')

return False

def search_file(path, filename, newpath):

queue = []

queue.append(path);

while len(queue) > 0:

tmp = queue.pop(0)

if (os.path.isdir(tmp)):#如果该路径是文件夹

for item in os.listdir(tmp):#遍历该路径中文件和文件夹

queue.append(os.path.join(tmp, item))#将所得路径加入队列queue

elif (os.path.isfile(tmp)):#如果该路径是文件

name = os.path.basename(tmp) # 获取文件名

dirname = os.path.dirname(tmp) # 获取文件目录

full_path = os.path.join(dirname, name) # 将文件名与文件目录连接起来,形成完整路径

des_path = newpath+'/'+path+'_'+name #目标路径,将该文件夹信息添加进最后的文件名中

if filename in name:#匹配符合条件的文件,也可用if(name.find(filename)!=-1):

shutil.move(full_path, des_path)#移动文件到目标路径(移动+重命名)

if __name__ == '__main__':

#打开excel文件

data=xlrd.open_workbook('名单.xlsx')

#获取第一张工作表(通过索引的方式)

table=data.sheet_by_index(0)

#datalist用来存放数据

datalist_UNIQID=[]

datalist_NAME=[]

#将table中第一行的数据读取并添加到data_list中

datalist_UNIQID.extend(table.col_values(0))

datalist_NAME.extend(table.col_values(2))

#foldname = [a+'_'+b for a, b in zip(datalist_UNIQID,datalist_NAME)]

dir_tjbg='zzz报告'

dir_fsgz='xxx证书'

dir_hbpx='yyy证书'

dir_ykfs='xyz证书'

#打印出第一行的全部数据

for index, name in zip(datalist_UNIQID, datalist_NAME):

foldername=index+'_'+name.strip()

#print(foldername)

mkdirs(foldername)

search_file(dir_tjbg,name.strip(),foldername)

search_file(dir_fsgz,name.strip(),foldername)

search_file(dir_hbpx,name.strip(),foldername)

search_file(dir_ykfs,name.strip(),foldername)

备忘

1. 同步遍历两个list

l1 = [2,2,2,2]

l2 = [3,3,3,3]

prod = [a*b for a, b in zip(l1,l2)]

print prod

# [6, 6, 6, 6]

add = [a+b for a, b in zip(l1,l2)]

print add

# [5, 5, 5, 5]

2. 文件夹操作

import os

import shutil

os.getcwd() # 获取当前工作目录,非脚本目录

os.listdir() # 返回指定目录下的所有文件和目录,非递归

os.remove() # 删除文件

os.removedirs() #删除目录

os.path.isfile() # 检验给出的路径是否是一个文件

os.path.isdir() # 检验给出的路径是否是一个目录

os.path.isabs() # 判断是否是绝对路径

os.path.exists() # 检验给出的路径是否真实存在

os.path.split() # 返回一个路径的目录名和文件名

os.path.splitext() # 分离文件扩展名

os.path.dirname() # 获取文件路径名

os.path.basename() # 获取一个绝对路径下的文件名

os.system() # 运行shell命令

os.rename(old,new) # 重命名文件或目录

os.makedirs(r"c:\python\test") # 创建多级目录

os.mkdir("test") # 创建单个目录

os.exit() # 终止当前进程

os.path.getsize(filename) # 获取文件大小

os.mknod("test.txt") # 创建空文件

shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是文件

shutil.copytree("olddir","newdir") # olddir和newdir都只能是目录,且newdir必须不存在

shutil.move("oldpos","newpos") # 移动文件或目录

shutil.rmtree("dir") # 删除目录,与os.removedirs()相同

os.path.join(“home”, "me", "mywork") # 路径连接

参考

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用win32com模块来操作Excel,通过该模块可以新建Excel文件并命名表格。 首先,需要安装pywin32库。可以使用以下命令进行安装: ```python pip install pywin32 ``` 然后,导入win32com.client模块以及相关的常量模块。如下所示: ```python import win32com.client as win32 from win32com.client import constants ``` 接下来,通过调用win32模块的Dispatch方法实例化Excel应用程序对象。 ```python excel = win32.gencache.EnsureDispatch('Excel.Application') ``` 然后,可以通过调用Application对象的Workbooks属性的Add方法来创建一个新的Excel工作簿,并保存为指定文件名: ```python workbook = excel.Workbooks.Add() workbook.SaveAs('文件路径/文件名.xlsx') ``` 接下来,可以获取工作簿中的第一个工作表,并通过调用Worksheet对象的Name属性来命名该工作表: ```python worksheet = workbook.Sheets(1) worksheet.Name = '工作表名字' ``` 最后,使用Application对象的Quit方法来关闭Excel应用程序。如下所示: ```python excel.Quit() ``` 完整的示例代码如下所示: ```python import win32com.client as win32 from win32com.client import constants excel = win32.gencache.EnsureDispatch('Excel.Application') workbook = excel.Workbooks.Add() workbook.SaveAs('文件路径/文件名.xlsx') worksheet = workbook.Sheets(1) worksheet.Name = '工作表名字' excel.Quit() ``` 以上就是使用win32com模块在Python中新建Excel并命名sheet的方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值