按照给定的策略挑选照片并上传到不同的目的地

photos-picker的Python项目详细描述


照片选取器

Build Statuscodecov

此库允许根据给定的策略(最后的照片、随机照片…)选择文件夹中的照片并将其复制到目标(另一个系统文件夹、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:)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径