2 回答
TA贡献1878条经验 获得超4个赞
您的folderName不是有效的路径,它只是一个字符串,您必须将路径创建为 sorted/folderName,正如您所提到的。而且您的照片位于photos_to_sort文件夹中,并且您正在使用根文件夹。
当您使用相对路径设置绝对路径时,事情会变得更简单并且也适用于其他计算机。
最佳实践是使用 os.path.join 创建路径,因为它根据底层操作系统创建路径,以便您的脚本可以在 Windows 和 Linux/Unix 上运行
下面是工作代码
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(os.path.join("sorted", folderName)):
shutil.copy(
os.path.join(
"photos_to_sort", f),
os.path.join(
"sorted", folderName),
)
else:
os.makedirs(os.path.join(
"sorted", folderName))
shutil.copy(
os.path.join(
"photos_to_sort", f),
os.path.join(
"sorted", folderName),
)
TA贡献1820条经验 获得超2个赞
利用os.makedirs(folder_name, exist_ok=True)
仅当目录不存在时才会创建该目录。然后,您可以在 for 循环中使用shutil copy 命令以及上述函数来完成这项工作。另外,检查 if 条件的位置。
dest_path = "C:\\Users\\User\\Projects\\PhotoSort\\sorted\\"
for f in sorted(os.listdir("photos_to_sort")):
folderName = f[4:12]
dest_img_folder = os.path.join(dest_path,folderName)
os.makedirs(dest_img_folder,exist_ok=True)
shutil.copy(
os.path.join("C:\\Users\\User\\Projects\\PhotoSort\\", f),
os.path.join(dest_img_folder,f), # also specify the absolute file path
)
添加回答
举报