一、思路
1.获取待整理照片文件列表
2.逐个获取照片拍摄时间
3.如果对应年月的文件夹不存在,则创建对应文件夹
4.移动照片到对应年月的文件夹中
二、路径各种概念
1)工作目录
每一个Python程序运行的时候,都有一个工作目录(Working Directory)显示当前的Python程序是运行在哪一个路径之下。
也就是说,所有Python程序在运行时,都有一个“上班的地方”,叫做工作目录。
工作目录可以在程序中使用代码修改。
2)绝对路径
Windows系统中的路径是以盘符+冒号开始,在macOS系统中是以正斜线( / )开始。
其实这种以盘符+冒号或正斜线( / )开始的路径又叫绝对路径(Absolute Path)。
3)相对路径
与绝对路径对应的概念叫作相对路径(Relative Path),指直接以文件或文件夹的名称开头,相对于工作目录的路径位置。
比如工作目录为:/Users/yequ
相对路径为: aha/答辩.pptx
对应的绝对路径就是:
/Users/yequ/aha/答辩.pptx
如果相对路径为:自拍.jpg
对应的绝对路径就是:
/Users/yequ/自拍.jpg
脱离了工作目录,单独存在的相对路径没有意义。
而同时有了相对路径和工作目录,就可以定位到具体位置的绝对路径。
在程序中,使用相对路径可以避免频繁地输入完整文件路径,起到简化代码的作用
三、获取当前工作目录
回到照片整理的问题上来,阿文的移动硬盘插上macOS操作系统的电脑后,显示的路径为:/Volumes/backup。待整理的照片都在“照片”文件夹中。
使用os.getcwd()函数可以用来获取当前程序的工作目录。
# 导入os模块
import os
# 输出当前工作目录
print(os.getcwd())
结果
/Users
四、修改当前工作目录
通过前面的代码运行发现,当前python程序运行的工作目录并不在移动硬盘路径/Volumes/backup下。
要修改程序运行时的工作目录,需要使用***os.chdir()***函数。
将新的路径作为参数传入该函数,即可将工作目录修改到目标路径。
# 导入os模块
import os
# 输出当前工作目录
print(os.getcwd())
# 修改当前工作目录到/Volumes/backup
os.chdir("/Volumes/backup")
# 再次输出当前工作目录以确认修改成功
print(os.getcwd())
结果
/Users
/Volumes/backup
五、获取照片
刚才我们已经知道,待处理照片的文件夹的绝对路径为 /Volumes/backup/照片。
将工作目录修改到移动硬盘路径/Volumes/backup/后,此文件夹的相对路径也就变成“照片”了。
我们可以直接将这个相对路径作为参数传入到函数os.listdir()中,来获取所有待处理的照片文件列表。
# 导入os模块
import os
# 修改当前工作目录到/Volumes/backup
os.chdir("/Volumes/backup")
# 待处理照片的相对路径
backupPhotoPath = "照片"
# 使用函数os.listdir()获取所有待处理照片文件列表
photoList = os.listdir(backupPhotoPath)
# 遍历文件列表
for photo in photoList:
# 输出文件名
print(photo)
结果
DSC_1207.JPG
DSC_1208.JPG
DSC_1209.JPG