【发布时间】:2020-08-30 10:20:57
【问题描述】:
我正在尝试按名称将文件夹中的照片分类到同名文件夹中。
project/photos_to_sort/
IMG_20200101_001.jpg
IMG_20200101_002.jpg
IMG_20200103_001.jpg
IMG_20200207_001.jpg
IMG_20200207_002.jpg
IMG_20200207_003.jpg
脚本应创建 3 个文件夹,名称分别为:20200101、20200103、20200207,然后将照片放入正确的文件夹中。
project/sorted/20200101/
IMG_20200101_001.jpg
IMG_20200101_002.jpg
project/sorted/20200103/
IMG_20200103_001.jpg
project/sorted/20200207/
IMG_20200207_001.jpg
IMG_20200207_002.jpg
IMG_20200207_003.jpg
到目前为止,这是我的代码,但我似乎可以让它工作:
import os
import shutil
# Input absolute path to PhotoSort program.
os.chdir("C:\\Users\\User\\Projects\\PhotoSort")
for f in os.listdir("photos_to_sort"):
folderName = f[4:12]
if os.path.exists(folderName):
shutil.copy(
os.path.join("C:\\Users\\User\\Projects\\PhotoSort\\", f),
os.path.join("C:\\Users\\User\\Projects\\PhotoSort\\sorted\\", folderName),
)
else:
os.mkdir(folderName)
shutil.copy(
os.path.join("C:\\Users\\User\\Projects\\PhotoSort\\", f),
os.path.join("C:\\Users\\User\\Projects\\PhotoSort\\sorted\\", folderName),
)
此时会吐出 FileNotFoundError。
【问题讨论】:
-
嘿,猎鹰!我们可以看到整个错误,以及它所引用的确切行吗?这样问题就更容易被发现了。
-
使用
os.makedirs递归创建目录,而不是os.makedir