我想将选定格式/类型(例如: pdf、jpg和tiff)的文件移动到另一个目录。
目前,我有以下代码,用于将dir1及其子目录中的所有文件移动到dir2:
for root, dirs, files in os.walk(dir1, topdown=True):
for name in files:
shutil.move(os.path.join(root, name), os.path.join(dir2, name))
但是上面的代码包含了所有文件。
我只想移动pdf、tiff和jpg文件,并将所有其他文件格式保留在原始目录中。有人能帮上忙吗?
发布于 2019-04-17 07:28:12
像这样的东西是一种简单的方法:
for root, dirs, files in os.walk(dir1, topdown=True):
for name in files:
if name.endswith(".pdf") or name.endswith(".jpg") or name.endswith(".tiff"):
shutil.move(os.path.join(root, name), os.path.join(dir2, name))
发布于 2019-04-17 07:28:23
在'.‘上拆分文件名最后一部分,保存一个你想要复制的文件扩展名列表,并检查它是否在列表中。
file_extensions = ['jpg', 'pdf', 'tiff']
for root, dirs, files in os.walk(dir1, topdown=True):
for name in files:
if name.split('.')[-1] in file_extensions:
shutil.move(os.path.join(root, name), os.path.join(dir2, name))
发布于 2019-04-17 07:36:56
试试glob
for root, dirs, files in os.walk(dir1, topdown=True):
files_ok = glob.glob(root + '/*.pdf')
files_ok += glob.glob(root + '/*.tiff')
files_ok += glob.glob(root + '/*.jpg')
for name in files_ok:
shutil.move(os.path.join(root, name), os.path.join(dir2, name))
https://stackoverflow.com/questions/55717844
复制相似问题