按照给定的策略挑选照片并上传到不同的目的地
photos-picker的Python项目详细描述
照片选取器
此库允许根据给定的策略(最后的照片、随机照片…)选择文件夹中的照片并将其复制到目标(另一个系统文件夹、Dropbox或Google Drive文件夹…)
兼容性
这个库目前与Python2.7、Python3.4、Python3.5、Python3.6和Python3.7一起工作。
安装
$ pip install photos-picker
用法
主类PhotosPicker
接受一个“picker”、一个“filters”元组和一个“uploader”作为参数。选择器允许在过滤器修改照片时选择照片。在这个过程结束时,上传者将转换(或不转换)的照片复制到给定的目的地。下面是将50张最新照片复制到另一个目录的最简单示例:
# Python 2.7 examplefromphotospicker.exception.abstract_exceptionimportAbstractExceptionfromphotospicker.picker.pickers.last_photos_pickerimportLastPhotosPickerfromphotospicker.uploader.uploaders.filesystem_uploaderimportFilesystemUploaderfromphotospicker.photos_pickerimportPhotosPickerif__name__=='__main__':try:picker=LastPhotosPicker('/pictures',50)uploader=FilesystemUploader('/destination')photos_picker=PhotosPicker(picker,(),uploader)photos_picker.run()exceptAbstractExceptionaserr:printerr.message
由于拾取和加载可能需要一段时间,因此会发送进度事件。 您可以看到一个更复杂的示例,它显示工作进度here。
选取器:
LastPhotosPicker
:选择n最新照片。RandomPicker
:随机选取{em1}$n照片。SmartPicker
:随机选取{em1}$n照片。最近的照片比旧照片更有机会被选中。它的结果是挑选了大多数的近期照片和一些旧照片。
更多详细信息here
注意,您还可以创建自己的picker来扩展基类AbstractPicker
。
过滤器:
ResizeFilter
:根据给定的宽度和高度调整照片的大小。最后的照片大小是为了避免失真而计算的。RotateFilter
:根据exif数据旋转照片。
更多详细信息here
注意,您还可以创建自己的过滤器来扩展基类AbstractFilter
。
上传者:
请注意,上传者不会附加新照片。目录必须为空,或者上载程序在复制文件之前将其清除。
FilesystemUploader
:将照片复制到给定目录。此目录必须存在且为空。DropBoxUploader
:上传照片到Dropbox。请注意,您应该限制对应用程序的令牌访问。不需要创建完全访问令牌,这可能会导致安全问题。GDriveUploader
将照片上传到谷歌硬盘。
更多详细信息here
注意,您还可以创建自己的上载程序来扩展基类AbstractUploader
。
贡献
该项目目前已与许多选择器、筛选器或上载程序一起提供。但是其他的可以开发,你可以为此发布一个问题。或者更好,请阅读how to post a pull request:)