找出两个文件夹中文件名相同的文件 并把所需格式文件拷贝到另一个文件夹中
用python实现是比较简单的。
1.首先导入模块
import os
import
# 先说明下这两个模块的作用
os 是 operation system 的缩写 包含文件和目录操作
shutil是 shell utilities 的简写 包含文件的拷贝、删除、移动、压缩等操作
2.路径设置
strleft = “ left dir path”
strRight = "right dir path"
strDst = "dest dir path"
# os.listdir 作用是返回指定路径下所有文件和文件夹的名字,并存放于一个列表中
# 本次demo假设路径文件夹下面没有其它文件夹
lsLeft = os.listdir(strleft)
lsRight = os.listdir(strRight)
lsLeftFileName = [] #存放文件名 不包括后缀
lsRightFileName = []
for i in lsLeft:
lsLeftFileName.append(i.split('.')[0])
注意,其中用到了 split函数。
参考 https://www.cnblogs.com/huchong/p/7349886.html博客内容:(感谢)
Python中有split()和os.path.split()两个函数:
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
os.path.split():按照路径将文件名和路径分割开
函数说明
split()函数
语法:str.split(str="",num=string.count(str))[n]
参数说明:
str: 表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]: 表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
os.path.split()函数
语法:os.path.split('PATH')
参数说明:
PATH指一个文件的全路径作为参数:
如果给出的是一个目录和文件名,则输出路径和文件名
如果给出的是一个目录名,则输出路径和为空文件名
for i in lsRight:
lsRightFileName.append(i.split('.')[0])
3.逻辑判断
for i in lsRightFileName:
if i in lsLeftFileName:
shutil.copy(strRight + '/' + i +'.文件格式(eg .png)', strDst + '/' + i + '.文件格式(eg .png)') #拷贝right dir 中文件名一样的指定格式的文件内容到目标文件夹
完整代码为:
strleft = r"left dir path"
strRight = r"right dir path"
strDst = r"dest dir path"
lsLeft = os.listdir(strleft)
lsRight = os.listdir(strRight)
lsLeftFileName = []
lsRightFileName = []
for i in lsLeft:
lsLeftFileName.append(i.split('.')[0])
for i in lsRight:
lsRightFileName.append(i.split('.')[0])
for i in lsRightFileName:
if i in lsLeftFileName: #用于选择出两个文件夹中存在的文件名相同的文件
shutil.copy(strRight + '/' + i +'.文件格式(eg .png)', strDst + '/' + i + '.文件格式(eg .png)')
continue
请参考,如有错误请指正 。



