编写程序,检查指定文件夹及其子文件夹下是否存在指定文件日期的文件。
参考一下:
# UTF-8
# 整理文件
# 将指定目录下的对应格式的文件(eg.epub)复制到指定的目录中
# ------------------------------------
import os
import shutil
#import copy
def list_folders_files(path):
"""
返回 "文件夹" 和 "文件" 名字
:param path: "文件夹"和"文件"所在的路径
:return: (list_folders, list_files)
:list_folders: 文件夹
:list_files: 文件
"""
list_folders = []
list_files = []
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
list_folders.append(file)
else:
list_files.append(file)
return (list_folders, list_files)
def list_files_with_suffix(path, suffix):
"""
返回含有特定"后缀名"的"文件"名字
:param path: "文件"所在的路径
:param suffix: 后缀名
:return: 含有特定"后缀名"的"文件"名字
"""
list_files = []
for file in os.listdir(path):
#print(file)
file_path = os.path.join(path, file)
if not os.path.isdir(file_path):
if os.path.splitext(file)[1].lower() == suffix.lower():
list_files.append(file)
return list_files
def list_files_with_suffix_allPath(path, suffix):
"""
返回含有特定"后缀名"的"文件"名字
包括子目录
:param path: "文件"所在的路径
:param suffix: 后缀名
:return: 含有特定"后缀名"的"文件"名字
"""
list_files = []
for dirpath, dirs, files in os.walk(path): # 递归遍历当前目录和所有子目录的文件和目录
for name in files: # files保存的是所有的文件名
if os.path.splitext(name)[1].lower() == suffix.lower():
filename = os.path.join(dirpath, name) # 加上路径,dirpath是遍历时文件对应的路径
list_files.append(filename)
return list_files
def mkdir(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 printMatrixList(li):
# 打印多维list
row = len(li)
col = len(li[0])
for i in range(row):
for j in range(col):
print(li[i][j], end=' ')
print('')
if __name__ == "__main__":
dir_root = r"./TE2018"
dir_root = r"./2019"
# Step0. 寻找目录中所有的epub
l_files = list_files_with_suffix_allPath(dir_root, '.epub')
l_dir = []
print('epub文件数: ', len(l_files))
# print(l_files)
dir_mk = r"./all_TE2018"
dir_mk = r"./all_TE2019"
mkdir( dir_mk )
for file in l_files:
(tmp_path, tmp_name) = os.path.split(file)
# 删除里面除了数字外所有的东西
tmp_name = filter(str.isdigit, tmp_name )
tmp_name = "".join(tmp_name) + ".epub"
# 组合新文件路径
newFilePath = os.path.join(dir_mk, tmp_name)
# 复制
shutil.copyfile(file, newFilePath)
print('copy ' + newFilePath)
# 复制完成
print('================')
print(' copy ok ')
print('================')