python批量复制文件以及文件重命名

1.批量复制文件到新文件夹并重新按顺序命名

复制文件要用到shutil.copy(),所以要下载shutil库,到Anaconda Prompt输入命令:pip install pytest-shutil

注意:其中zfill6)的作用是将1变为6位数,缺少位置0代替,结果就是00001

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Fri May 15 14:38:21 2020
 4 
 5 @author: panq
 6 """
 7 
 8 import os
 9 import shutil
10  
11 def alter_fileNamepath): # 获取目录下所有jpg格式文件的文件名
12     n=0
13     filelist= os.listdirtarge_path)      
14     for i in filelist:  #i是path目录下的文件名
15         oldname=targe_path+os.sep+filelist[n]#oldname是原文件路径
16         newname=targe_path+os.sep+strn+1).zfill6)+'.jpg'#newname是新文件名,路径+新文件名
17         os.renameoldname,newname) #改名字
18         printoldname,'======>',newname)
19         n+=1
20 
21  
22 def file_copypath,targe_path):  #将path目录下所有jpg文件复制到targe_path
23     '''
24     root 所指的是当前正在遍历的这个文件夹的本身的地址
25     dirs 是一个 list ,内容是该文件夹中所有的目录的名字不包括子目录)
26     files 同样是 list , 内容是该文件夹中所有的文件名不包括子目录)
27     '''
28     for root,dirs,files in os.walkpath): 
29         for name in files:         
30             if name.endswith'.jpg'):#若文件名结尾是以jpg结尾,则复制到新文件夹
31                 list=os.path.joinroot,name)) #list是jpg文件的全路径             
32                 shutil.copylist, targe_path) #将jpg文件复制到新文件夹
33     
34 path="F:任务1测试数据"
35 targe_path="F:panqiaoyan"
36 file_copypath, targe_path)
37 alter_fileNametarge_path)

2.使用 python 编写一个自动程序,把所有的图片提取出来,第 1类的放在一个新建文件夹名字“1”里面,第 2 类的放在一个新建文件夹名字“2”里 面 , 依 次 类 推 。 且 图 片 需 要 重 新 命 名 , 第 1 类 的 图 片 命 名 为100001,100002,……;第 2 类的图片命名为 200001,200002,……;依次类推

注:1、2、3、4、5文件夹我已经建好了,你也可以程序自动创建。其中zfill5)的作用是将1变为5位数,缺少位置0代替,结果就是0001

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Sat May 16 17:53:44 2020
 4 
 5 @author: panq
 6 """
 7 import os
 8 import shutil
 9 
10 path="F:任务2测试数据"
11 targe_path="F:panqiaoyan01"
12 n1=0 #记录第一类的个数
13 n2=0
14 n3=0
15 n4=0
16 n5=0
17 for root,dirs,files in os.walkpath): 
18     for name in files:
19         if name.startswith"1"):  #当照片是第一类时,复制到1文件夹       
20             targe_path1="F:/panqiaoyan01/1"
21             list=os.path.joinroot,name)) #原文件路径
22             shutil.copylist, targe_path1) #将未改名的文件复制到新文件夹中
23             oldname=targe_path1+os.sep+name #复制之后的旧文件名路径+文件名)
24             newname=targe_path1+os.sep+"1"+strn1+1).zfill5)+'.jpg' #新文件名路径+文件名)            
25             os.renameoldname,newname) #到新文件夹处改文件名
26             n1+=1
27         if name.startswith"2"):
28             targe_path1="F:/panqiaoyan01/2"
29             list=os.path.joinroot,name))
30             newname=targe_path1+os.sep+"2"+strn2+1).zfill5)+'.jpg'
31             oldname=targe_path1+os.sep+name
32             shutil.copylist, targe_path1)
33             os.renameoldname,newname)
34             n2+=1
35         if name.startswith"3"):
36             targe_path1="F:/panqiaoyan01/3"
37             list=os.path.joinroot,name))
38             newname=targe_path1+os.sep+"3"+strn3+1).zfill5)+'.jpg'
39             oldname=targe_path1+os.sep+name
40             shutil.copylist, targe_path1)
41             os.renameoldname,newname)
42             n3+=1
43         if name.startswith"4"):
44             targe_path1="F:/panqiaoyan01/4"
45             list=os.path.joinroot,name))
46             newname=targe_path1+os.sep+"4"+strn4+1).zfill5)+'.jpg'
47             oldname=targe_path1+os.sep+name
48             shutil.copylist, targe_path1)
49             os.renameoldname,newname)
50             n4+=1
51         if name.startswith"5"):        
52             targe_path1="F:/panqiaoyan01/5"
53             list=os.path.joinroot,name))            
54             oldname=targe_path1+os.sep+name
55             shutil.copylist, targe_path1)         
56             newname=targe_path1+os.sep+"5"+strn5+1).zfill5)+'.jpg'
57             os.renameoldname,newname)
58             n5+=1

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注