Nvm,不起作用。感谢你的付出。
答案 0 :(得分:0)
有一个内置库,用于检查文件是否为图像。另外,您需要遍历目录(文件夹)中的文件。这样的事情应该可以工作(未经测试):
import os
import shutil
import datetime
import imghdr
downloadsb = os.path.join('B:\\Downloads')
pictures = os.path.join('B:\\Pictures')
files = os.listdir(downloadsb)
for f in files:
try:
imghdr.what(f)
dest_name = f
if os.path.exists( os.path.join(pictures, dest_name) ):
dest_name += datetime.datetime.now().strftime('%H%M%S')
shutil.move(os.path.join(downloadsb, f),
os.path.join(pictures, dest_name))
except Exception as e:
continue
答案 1 :(得分:0)
为什么在移动前不检查它。像下面这样
注意:文件存在时,您可以执行不同类型的重命名。我只是将_new附加到扩展名中。不完全是您想要的,但是应该给出一个主意
import os
import shutil
import datetime
import glob
downloadsb = os.path.join('src')
pictures = os.path.join('dst')
for f in glob.glob(downloadsb + '/*'):
if f.endswith(
(".jpg", ".gif", ".jpeg", ".png", ".ico", ".psd", ".sfw", ".webp", ".pdd", ".psb", ".bmp",
".rle", ".dib", ".eps", ".iff", ".tdi", ".jpf", ".jpx", ".jp2", ".j2c", ".jxk", ".jpc", ".jps",
".mp0", ".pcx", ".pdp", ".raw", ".pxr", ".pns")):
dstFile = os.path.join(pictures, os.path.split(f)[1])
if os.path.exists(dstFile):
# Do whatever you want to rename the file here
shutil.move(f, dstFile + '_new')
else:
shutil.move(f, dstFile)
运行之前
dst:
tmp.jpg
src:
tmp.jpg
运行后
dst:
tmp.jpg tmp.jpg_new
src: