求助一个python脚本用于批删除同文件夹下的同名不同后缀的文件

求一个python脚本,在macos环境下,同一个目录下有0001.ARW、0001.JPG、0002.ARW、0002.JPG、0003.ARW、0003.JPG、0004.ARW、0004.JPG……等一批相同文件名但不同后缀的文件,假如我删除其中几个.JPG后,要求检测同文件夹下的全部文件,并且把与已删除的.JPG同名的但是后缀为ARW的文件也删除。.JPG还在的文件,.ARW予以保留。全部检测结束,删除前提醒我Y/N确认。

第1个回答  2021-05-10

以下代码在MacOS系统下测试通过 使用前请自行配置需要操作的文件夹路径(dir_path),默认操作文件夹为脚本所在路径。提示删除操作时,输入y或者Y会删除文件,直接回车或者输入其他任意字符为跳过。具体实现代码如下,缩进参考截图:




import glob
from pathlib import Path

dir_path = '.'
files = glob.glob('*.ARW')
for i in files:
is_exist = Path(Path(i).stem + '.JPG')
if not is_exist.is_file():
verify = input("{} 对应.JPG文件已被删除,请选择操作Y/N:".format(i))
if verify.lower() == 'y':
try:
Path(i).unlink()
print("成功删除文件 {}".format(i))
except OSError as e:
print("异常:文件 {} 未被删除!".format(i))
else:
print("跳过文件 {}".format(i))
continue
else:
print("操作完成,再次运行脚本可重新检测!")


测试输出:

0009.ARW 对应.JPG文件已被删除,请选择操作Y/N:n

跳过文件 0009.ARW

0008.ARW 对应.JPG文件已被删除,请选择操作Y/N:y

成功删除文件 0008.ARW

0001.ARW 对应.JPG文件已被删除,请选择操作Y/N:y

成功删除文件 0001.ARW

操作完成,再次运行脚本可重新检测!

相似回答