除了api变更之外
还有一个比较隐式的变更,即文档默认使用Unicode编编码字符串
而文档的起始位置还得标上:
# coding=utf-8
否则mac机器上可能中文报错
windows下编辑python 推荐使用 PyCharm ,这软件格式检验比较严格。
另一个遇到的问题是使用管道读其它程序的标准输出时,格式解释出的问题。由于不知道对方什么方式编码的字符串,最后decode时老报错。解决方式就是在影响不大的情况下使用ignore字段:
out.decode('GBK', 'ignore')
还有一个关于删除目录遇到的问题。我使用的api是:
if os.path.exists(path):
shutil.rmtree(path)
但是这个api是异步调用的,执行后面的代码时可能目录并没有真的删除完成。
最后修改方法如下:
if os.path.exists(path):
shutil.move(path, path + '_tmp')
shutil.rmtree(path + '_tmp')
这样即使没有删除完但这个文件夹已经被重命名了,也就目录不存在了。