遍历文件夹下的所有子文件夹和文件,将该路径下的所有子文件进行复制到目标文件夹。(不影响源文件夹)
import os
import shutil
"""
脚本功能描述:
将文件夹patha下所有的文件(可以设定条件筛选)复制到文件夹pathb中
--path 起始文件夹
a.txt
--b
1.py
2.docx
--c
3.jpg
复制完成后的效果
--pathb 目标文件夹
a.txt
1.py
2.docx
3.jpg
"""
def CopyFile(filepath, newPath):
"""
将起始路径的路径文件复制到目标路径
filepath:起始路径
newPath:目标路径
"""
# 获取当前路径下的文件名,返回List
fileNames = os.listdir(filepath)
for file in fileNames:
# 将文件名加入到当前文件路径后面
newDir = filepath + '/' + file
# 如果是文件,且文件的结尾是 "_3.bmp"
# and newDir.endswith("_3.bmp")语句用于筛选,若去除则会复制所有文件
if os.path.isfile(newDir) and newDir.endswith("_3.bmp"):
newFile = newPath +'/'+ file
print(file)
# 开始文件复制
shutil.copyfile(newDir, newFile)
# 如果不是文件,递归这个文件夹的路径
elif not os.path.isfile(newDir):
CopyFile(newDir,newPath)
if __name__ == "__main__":
# 需要复制的文件夹路径(起始位置)
patha="E:/LI/data"
# 需要将文件复制到的文件夹路径(目标位置)
pathb = "E:/LI/all"
# 判断目标文件夹是否存在,不存在则创建文件夹
if not os.path.exists(pathb):
os.makedirs(pathb)
# 遍历起始文件夹
fileNames = os.listdir(patha)
# 文件操作
for file in fileNames:
CopyFile(patha+'/' + file, "E:/LI/all")
路径不能有中文,否则报错。