xDroid's Blog

onedrive命令行管理(基于python)

上上个星期挖的坑

主要是周围有个同学(taroxd)在用巨硬的onenote记笔记,向我安利了onedrive的api接口。正好学了一点python,写个onedrive文件管理练练手。一边学python语法一边看文档真是好累啊。

项目地址:owen8877/OneDrive_Python

按照惯例,说一点新学到的东西:

  • 从js那里学过来的,将函数放入字典中,按键值取出,可以模拟shell
  • 不要打分号
  • cd命令是通过调用函数onedrive_cd来实现的,那么可以给onedrive_cd传入原先字符串经split(' ')后去掉第一个的数组,亦即
    onedrive_cd(*params)
    然后在onedrive_cd内部把params接起来,就可以输入带有空格的文件名了。
  1. 然而上面这一条有一个很隐蔽的bug:如果在程序他处调用onedrive_cd,应该如何指定参数呢?
    一开始我觉得这样调用就可以了嘛:
    onedrive_cd(path) # path == "test"
    然而在onedrive_cd内部,接出来的字符串却是"t e s t",令人非常困惑。
    其实原因很简单:因为字符串被自动转为了列表,结果params就变成了{'t', 'e', 's', 't'}
    怎么解决呢?这样调用就可以了:
    onedrive_cd([path]) # path == "test"
    扶墙吐血中
  • progressbar这个包并没有什么卵用。本来是想显示下载进度的,结果下载完显示了一个100%的进度条……
  • 用python做用户授权……好像是不行的……只能让用户手动复制重定向链接……
  • try/catch简直好用到哭,再也不设置繁琐的flag了
  • 读写文件的一些模块就不赘述了
  • G×F×W土蔷坑爹