python更新所有的包
1
2
3
4
5
6
7
8> import pip
> from subprocess import call
>
> package_list_str = " ".join([dist.project_name for dist in pip.get_installed_distributions()])
>
> call("pip install --upgrade " + package_list_str, shell=True)
>
>
gettext 模块
使用gettext模块翻译Python3源码以支持国际化
你写了一个Python 3进程,还想要它适用于其他语言。你能复制全部代码库,然后刻意地检查每个.py文档,替换掉所有找到的文本字符串。但这意味着你有两份你代码的独立副本,每当你要做出个改动或修复个bug,你的工作量会加倍。而且如果你想要进程还适用于其他语言,就更糟了。
TODO: 了解一下 Python Language Services的一些库。比如parser — Access Python parse trees用于解析源代码 解析成抽象树!
configparser 内置库用法
这个库用于解析配置文档,配置文档需要满足一定的语法要求。通常是txt/ini的文档格式:
配置文档中包含一个或多个section, 每个section用中括号括起来[section_name]
[section_name]后面是该选项下的参数名以及参数值(或者说键值对),使用分隔符 = 或 : 隔开。
每个键值对占据一行,该行是一个option。在 option 分隔符两端的空格会被忽略掉。
参数文档使用 # 和 ; 作为行开头时,该行是注释,也就是说该行不是参数行,不会被解析成参数。
使用方法:
14import configparser
config = configparser.ConfigParser()
config.read(file, encoding='utf-8')
fread = open(file, 'r', encoding='utf-8')
config.read_file('[fake]n' + fread.read())
config.read_string('[fake]n' + fread.read())
print(config.sections())
print(config.options('section_name'))
print(config.items('section_name'))
bunch库Bunch is a dictionary that supports attribute-style access, a la JavaScript.
Bunch库是一个支持属性方式获取值的字典,就像JavaScript。
从源码来看class Bunch(dict): 显然是字典的子类。此外这个库还支持序列化转换成json格式
但是这个库已经没有人维护,仅仅比较友好的支持到python3.2
因此修改了部分源码使其更好的支持python3.6,主要体现在
dict的方法dict.keys(),dict.items(),dict.values()不会再返回列表,而是返回一个易读的“views”。这样一来,像这样的语法将不再有用了:k = d.keys();k.sort(),你可以使用k = sorted(d)来代替。sorted(d)在Python2.5及以后的版本中也有用,但是Python3效率更高了。
目前自己电脑上用的就是修改后支持python3.6的
转换 Dict->Bunch->Dice/json/yaml
注意,使用argparse.Namespace也可以实现:但是不支持字典的方式arg.fix['x']
1
2arg = argparse.Namespace(num=10, fix=argparse.Namespace(x=2, y=10))
print(arg.fix.x)
TODO: 有待研究
Chilkat 库
是一个综合性的库,好像很牛X。有待了解….
tqdm: 进度条工具库tqdm means “progress” in Arabic (taqadum, تقدّم) and is an abbreviation for “I love you so much” in Spanish (te quiero demasiado).
tqdm(读音:taqadum, تقدّم)在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator),是一个快速、扩展性强的进度条工具库示例。
安装: pip install tqdm
示例
4from tqdm import tqdm
from time import sleep
for i in tqdm(range(100)):
sleep(1)
networkx 库NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。
tornado 库
python web服务器框架