求一个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确认。
以下代码在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
操作完成,再次运行脚本可重新检测!