python常用资源及代码

    本文地址:http://tongxinmao.com/Article/Detail/id/238

    PYTHON资源:

    文档:https://www.python.org/



    python -2 hello.py

    python -3 hello.py


    python -3 -m pip install XXXX

    sudo apt-get install python-pip

    sudo apt-get install python3-pip


    Python2要在代码文件顶部增加一行说明,才能够在代码中使用中文。

    #! python2

    # coding: utf-8



    GUI:pygtk、pyqt wxPython

    打包成EXE:pyinstaller


    爬虫:Scrapy(python2.7)

     Pexpect:用Python作为外壳控制其他命令行程序的工具(比如Linux下标准的ftp、telnet程序什么的),还没有测试可用程度如何。


    算法和设计模式

    Python实现算法和设计模式

    • algorithms - Python的一个算法模块.

    • PyPattyrn - 一个用于实现常见设计模式的简单而有效的库.

    • python-patterns - Python中设计模式的集合.

    • sortedcontainers - 快速,纯Python的SortedList,SortedDict和SortedSet类型的实现.

    构建工具

    从源代码编译软件

    • BitBake - 一个嵌入Linux的类似make的构建工具.

    • buildout - 用于从多个部分创建、组装和部署应用程序的构建系统.

    • PlatformIO - 对不同开发平台的代码进行构建的控制台工具.

    • PyBuilder - 用不同开发平台构建代码的控制台工具.

    • SCons - 软件构建工具.

    高速缓存

    用于缓存数据的库

    • Beaker - 用于web应用和独立python脚本使用的缓存库.

    • DiskCache - SQLite和文件支持的缓存后端,具有比memcached和redis更快的查找功能.

    • django-cache-machine - Django模型的自动缓存.

    • django-cacheops - 支持自动或手动查询缓存,并且具有自动粒度事件驱动的ORM缓存.

    • django-viewlet - 使用扩展的缓存来控制渲染的模板部分.

    • dogpile.cache - dogpile.cache是一个缓存API,它提供了一个通用接口来缓存任何种类的后端.

    • HermesCache - 具有基于标签的无效和预防效果的Python缓存库.

    • johnny-cache - django应用程序的缓存框架.

    • pylibmc - 围绕libmemcached接口的Python包装器.

    代码分析

    用于分析、解析和操作代码的库和工具

    • coala - 语言独立、易于扩展的代码分析应用程序.

    • code2flow - 将你的Python和JavaScript代码转换为DOT流程图.

    • pycallgraph - 可视化你的Python应用程序的流程(调用图)的库.

    • pysonar2 - Python的类型参考和索引器.

    命令行工具

    用于构建命令行应用程序的库

    • 命令行应用程序开发

      • asciimatics - 跨平台的全屏终端软件包(即鼠标/键盘输入和彩色定位的文本输出),具有复杂动画和特效的高级API.

      • cement - Python的CLI应用程序框架.

      • click - 用组合的方式创建美观的命令行界面的包.

      • cliff - 用多层次命令创建命令行程序的框架.

      • clint - Python命令行应用工具.

      • colorama - 跨平台彩色终端文本.

      • docopt - Pythonic命令行参数解析器.

      • Gooey - 将命令行程序转换成一行完整的GUI应用程序

      • Python-Fire - 用于从任何Python对象创建命令行界面(CLI)的库.

      • python-prompt-toolkit - 用于构建强大的交互式命令行的库.

    • 生产力工具

      • aws-cli - Amazon Web Services的通用命令行界面.

      • bashplotlib - 在终端中制作基本图.

      • caniusepython3 - 确定哪些项目阻止你移植到Python 3.

      • cookiecutter - 从cookiecuters(项目模板)创建项目的命令行实用程序.

      • doitlive - 终端中现场演示的工具.

      • howdoi - 通过命令行即时编码.

      • httpie - 命令行HTTP客户端,是一个用户友好的cURL替换工具.

      • mycli - 具有自动完成和语法突出显示的MySQL的终端客户端.

      • PathPicker - 从bash输出选择文件.

      • percol - percol在UNIX上为传统的管道概念增添了交互式选择的风格.

      • pgcli - 具有自动完成和语法高亮的Postgres CLI.

      • SAWS - 增加的AWS命令行界面(CLI).

      • thefuck - 更正你之前的控制台命令.

      • try - 令人敬畏的cli工具.

    兼容性

    从Python 2迁移到3的库

    • Python-Future - Python 2和Python 3之间缺少的兼容性层.

    • Python-Modernize - 使Python代码现代化,实现最终的Python 3迁移.

    • Six - Python 2和3兼容性实用程序.

    计算机视觉

    计算机视觉相关的库

    • OpenCV - 比较知名的计算机视觉的库.

    • pyocr - Tesseract和Cuneiform的包装.

    • pytesseract - Google Tesseract OCR的另一个包装.

    • SimpleCV - 构建计算机视觉应用程序的开源框架.

    并发和并行

    用于并发和并行执行的库

    • eventlet - 具有WSGI支持的异步框架.

    • gevent - 基于协同程序的Python网络库.

    • multiprocessing - Python标准库————基于流程的“线程”接口.

    • threading - (Python标准库)高级线程接口.

    • Tomorrow - 异步代码的魔术装饰器语法.

    • uvloop - uvloop是对内置的asyncio事件循环的一个快速、简单的替换。uvloop在Cython中实现,并使用libuv.

    加密

    • cryptography - 一个旨在向Python开发人员提供加密算法的软件包.

    • hashids - 在Python 中实现hashids(Hashids),兼容Python 2和Python 3.

    • Paramiko - 实现SSHv2协议的Python(2.6 +,3.3+),提供客户端和服务器功能.

    • Passlib - 安全的密码存储/哈希库,非常高的安全级别.

    • PyNacl - Python绑定到网络和加密(NaCl)库.

    数据分析

    数据分析包

    • Blaze - NumPy和Pandas与Big Data接口.

    • Open Mining - 面向Pandas的商业智能(BI)界面.

    • Orange - 通过视觉编程或脚本进行数据挖掘、数据可视化、分析和机器学习.

    • Pandas - 量化领域数据分析最常用的一个包.

    数据验证

    用于验证数据的库。在许多情况下用于表格

    • Cerberus - 轻量级和可扩展的数据验证库.

    • colander - 通过XML、JSON、HTML表单文档获取和反序列化数据.

    • jsonschema - Python 的JSON Schema的实现.

    • schema - 用于验证Python数据结构的库.

    • Schematics - 数据结构验证.

    • valideer - 轻量级可扩展数据验证和适应库.

    • voluptuous - 一个Python数据验证库.

    数据可视化

    用于可视化数据的库

    • Altair - 使用Altair,您可以花费更多时间了解您的数据及其含义。Altair的API简单,友好和一致,建立在强大的 Vega-Lite JSON规范之上。这种优雅的简洁性以最少的代码产生了美丽而有效的可视化.

    • Bokeh - Python的交互式网络绘图.

    • ggplot - 与ggplot2相同的API.

    • Matplotlib - 一个Python 2D绘图库.

    • Pygal - 一个Python SVG图表创建者.

    • PyGraphviz - Graphviz的 Python接口.

    • PyQtGraph - 交互式和实时2D / 3D /图像绘图和科学/工程小部件.

    • Seaborn - 使用Matplotlib的统计数据可视化.

    • VisPy - 基于OpenGL的高性能科学可视化.

    数据库

    在Python中实现的数据库

    • pickleDB - 一个用于Python的简单轻便的键值存储.

    • PipelineDB - 流式SQL数据库,一个开源关系数据库,可以连续地在流上运行SQL查询,并将结果逐个存储在表中.

    • TinyDB - 一个微小的、面向文档的数据库.

    • ZODB - Python的本机对象数据库.

    数据库驱动程序

    用于连接和操作数据库的库

    • MySQL

      • mysql-python - 用于Python的MySQL数据库连接器.

      • mysqlclient - mysql-python fork支持Python 3.

      • oursql - 一个更好的MySQL连接器.

      • PyMySQL - 纯Python MySQL驱动程序兼容于mysql-python.

    • PostgreSQL

      • psycopg2 - 最流行的适用于Python的PostgreSQL适配器.

      • queries - 用于与PostgreSQL交互的psycopg2库的包装器.

      • txpostgres - 用于PostgreSQL的基于Twisted的异步驱动程序.

    • 其他关系型数据库

      • apsw - 另一个Python SQLite包装器.

      • dataset - 将Python脚本存储在数据库中 - 与SQLite,MySQL和PostgreSQL一起使用.

      • pymssql - Microsoft SQL Server的简单数据库接口.

    • 非关系型数据库

      • cassandra-python-driver - Cassandra的Python驱动程序.

      • HappyBase - 个开发人员友好的Apache HBase库.

      • Plyvel - 一个快速和功能丰富的Python接口到LevelDB.

      • py2neo - 适用于Neo4j 静态界面的 Python包装客户端.

      • pycassa - Cassandra的 Python Thrift驱动.

      • PyMongo - MongoDB的官方Python客户端.

      • redis-py - Redis Python客户端.

      • telephus - Cassandra的基于Twisted的客户端.

      • txRedis - Redis的基于Twisted的客户端.

    日期和时间

    处理日期和时间的库

    • arrow - Python功能强大的日期和时间库.

    • Chronyk -用于解析人为时间和日期的Python 3库.

    • dateutil - 扩展到标准的Python datetime模块.

    • delorean - Delorean建立在pytz和dateutil之上,Delorean将为处理时间提供自然语言改进,并提供易于使用的日期时间抽象

    • moment - 处理日期/时间的Python库。灵感来自Moment.js.

    • Pendulum - Python datetimes变得容易.

    • PyTime - 一个易于使用的Python模块,旨在通过字符串操作日期/时间/日期时间.

    • pytz - 处理时区的一个库.

    • when.py - 提供用户友好的功能来帮助执行常见的日期和时间操作.

    调试工具

    代码调试工具的包

    • 类似于pdb的调试器

      • ipdb - 启用了IPython的pdb.

      • pdb++ - pdb的另一个替代品.

      • pudb - 一个全屏幕的基于控制台的Python调试器.

      • remote-pdb - 远程vanilla PDB调试器(通过TCP sockets).

      • wdb - 通过WebSockets的Web调试器.

    • Profiler性能分析器

    • 其他

      • django-debug-toolbar - 显示Django的各种调试信息.

      • django-devserver - Django的runserver的替代品.

      • flask-debugtoolbar - django-debug工具栏的一个端口.

      • hunter - 一个灵活的代码跟踪工具包.

      • lptrace - strace for Python程序.

      • manhole - 调试服务,将接受unix域套接字连接,并显示所有线程的堆栈跟踪和交互式提示.

      • pyelftools - 解析和分析ELF文件和DWARF调试信息.

      • pyringe - 调试器能够附加和注入代码到Python进程.

    深度学习

    神经网络和深度学习框架

    • Caffe - 深度学习的一个快速上手开放框架

    • Keras - 一个高级神经网络库,能够运行在TensorFlow或者Theano之上.

    • MXNet - 一个旨在提高效率和灵活性的深度学习框架.

    • Neupy - 运行和测试不同的人工神经网络算法.

    • Pytorch - 具有强大GPU加速度的Python中的Tensors和动态神经网络.

    • TensorFlow - 由Google创建的最受欢迎的深度学习框架.

    • Theano - 快速数值计算的深度学习库.

    文档

    用于生成项目文档的库

    • Sphinx - Python文档生成器.

    • MkDocs - Markdown友好的文档生成器.

    • pdoc - Epydoc替换为Python库自动生成API文档.

    • Pycco - 识字编程式文档生成器.

    下载器

    下载方面的库

    • s3cmd - 用于管理Amazon S3和CloudFront的命令行工具.

    • s4cmd - 超级S3命令行工具,有利于更高的性能.

    • you-get -一个用Python 3编写的YouTube /优酷/ Niconico视频下载.

    • youtube-dl - 从YouTube下载视频的小型命令行程序.

    电子商务

    电子商务和付款框架的库.

    • alipay - 非官方的Alipay API for Python.

    • Cartridge - Cartridge是使用Django 框架构建的购物车应用程序.

    • django-oscar - Django的开源电子商务框架.

    • django-shop - 一个基于Django的商店系统.

    • merchant - 一个Django应用程序接受来自各种支付处理器的付款.

    • money - 具有可选CLDR支持的区域设置和可扩展的货币兑换解决方案的

    • python-currencies - 显示世界各国货币格式的Python包.

    • forex-python - 外汇汇率,比特币价格指数和货币兑换.

    • shoop - 基于Django的开源电子商务平台.

    编辑器插件和IDE

    • Emacs

      • Elpy - Emacs Python开发环境.

    • Sublime Text

      • Anaconda - Anaconda将您的Sublime Text 3转换为全功能的Python开发IDE.

      • SublimeJEDI - SublimeJEDI是一个Sublime Text 2和Sublime Text 3的插件.

    • Vim

      • Jedi-vim - 用于Python的Jedi自动完成库的Vim绑定.

      • Python-mode - 一个将Vim转换成Python IDE的插件.

      • YouCompleteMe - 包括基于Jedi的Python完成引擎.

    • Visual Studio

      • PTVS - Visual Studio的Python工具.

    • Visual Studio Code

      • Python - 具有丰富的Python语言支持的扩展,其中包括linting,IntelliSense,格式化,重构,调试,单元测试和jupyter支持.

      • Magic Python -Sublime Text,Atom和Visual Studio代码的前沿Python语法荧光笔。由GitHub用来突出显示你的Python代码!

    • IDE

      • LiClipse - 基于Eclipse的免费polyglot IDE。使用PyDev支持Python.

      • PyCharm - JetBrains的商业Python IDE。有免费社区版可用.

      • Spyder - 开源Python IDE.

    邮件

    用于发送和解析邮件的库

    • envelopes - 发送邮件的库.

    • flanker - 用于发送和解析邮件的库.

    • imbox - 用于人类的Python IMAP.

    • inbox.py - 用于人类的Python SMTP服务器.

    • lamson - Pythonic SMTP应用服务器.

    • Marrow Mailer - 高性能可扩展邮件传递框架.

    • modoboa -邮件托管和管理平台,包括现代和简化的Web UI.

    • Nylas Sync Engine -在功能强大的电子邮件同步平台之上提供RESTful API.

    • yagmail - 另一个Gmail / SMTP客户端.

    环境管理

    Python版本和环境管理库

    • Pipenv - Pipfile,Pip和Virtualenv的组合.

    • p -交互式Python版本管理.

    • pyenv -简单的Python版本管理.

    • venv - Python 3.3+中的 Python标准库)创建轻量级的虚拟环境.

    • virtualenv - 创建孤立的Python环境的工具.

    • virtualenvwrapper - 一组对virtualenv的扩展.

    GUI

    用于使用图形用户界面应用程序的库

    • curses - 用于创建终端GUI应用程序的ncurses的内置包装器.

    • enaml - 使用声明式语法(如QML)创建漂亮的用户界面.

    • Flexx - Flexx是一个纯Python工具包,用于创建GUI,它使用Web技术进行渲染.

    • kivy - 用于创建在Windows,Linux,Mac OS X,Android和iOS上运行的NUI应用程序的库.

    • pyglet - 一个用于Python的跨平台窗口和多媒体库.

    • PyGObject - 用于GLib / GObject / GIO / GTK +(GTK + 3)的Python绑定

    • PyQt - 用于Qt跨平台应用程序和UI框架的Python绑定,支持Qt v4和Qt v5框架.

    • PySide - 用于Qt跨平台应用程序和UI框架的Python绑定,支持Qt v4框架.

    • pywebview - 围绕Webview组件的轻量级跨平台本机包装,允许在自己的本机专用窗口中显示HTML内容

    • Tkinter - Tkinter是Python的事实上的标准GUI包.

    • Toga - 一个Python本机的OS本机GUI工具包.

    • urwid - 用于创建终端GUI应用程序的库,具有对窗口小部件、事件、丰富颜色等的强大支持.

    • wxPython - wxWidgets C ++类库与Python的混合.

    游戏开发

    游戏开发库.

    • Cocos2d - Cocos2d是构建2D游戏,演示和其他图形/交互应用程序的框架。它是基于pyglet.

    • Panda3D - 迪斯尼开发和卡内基梅隆大学娱乐技术中心保持的3D游戏引擎。用C ++编写,完全包含在Python中.

    • Pygame - Pygame是一组用于编写游戏的Python模块.

    • PyOgre - Ogre 3D渲染引擎的Python绑定,可用于游戏、模拟、任何3D.

    • PyOpenGL - 用于OpenGL的Python ctypes绑定及其相关API.

    • PySDL2 - SDL2库的基于ctypes的包装器.

    • RenPy - 视觉新颖引擎.

    地理位置

    地理编码地图和纬度和经度的库

    • django-countries - 提供用于表单选择的Django应用程序,可以标志图标静态文件和模型的国家/地区字段.

    • GeoDjango - 世界级的地理网络框架.

    • GeoIP - 用于MaxMind GeoIP遗留数据库的Python API.

    • geojson - GeoJSON的Python绑定和实用程序.

    • geopy - Python地理编码工具箱.

    • pygeoip -纯Python GeoIP API.

    HTML操作

    使用HTML和XML的库

    • BeautifulSoup - Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序.

    • bleach - 理HTML(需要html5lib).

    • cssutils - 个用于Python的CSS库.

    • html5lib - 根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上.

    • lxml - 一个用于处理HTML和XML的非常快速、易于使用和通用的库.

    • MarkupSafe - 为Python编写XML / HTML / XHTML标记安全字符串.

    • pyquery - 解析DOM树和jQuery选择器.

    • untangle - 轻松实现将XML文件转换为Python对象.

    • WeasyPrint - 可以导出为PDF的HTML和CSS的视觉呈现引擎.

    • xmldataset - 简单的XML解析.

    • xmltodict - 使用XML感觉就像使用JSON一样.

    Hardware

    与硬件相关的库.

    • ino - 与Arduino合作的命令行工具包.

    • Pingo - Pingo提供统一的API来编程像Raspberry Pi、pcDuino、Intel Galileo等设备.

    • Pyro - Python机器人.

    • PyUserInput - 用于跨平台控制鼠标和键盘的模块.

    • scapy - Scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具.

    • wifi - 在Linux上使用WiFi的Python库和命令行工具.

    图像

    处理图像的库

    • hmap - 图像直方图的库.

    • imgSeek - 使用视觉相似性搜索图像集合的项目.

    • nude.py - 色情图片识别的库.

    • pagan - 基于输入字符串和散列的复古识别(Avatar)生成.

    • pillow - Pillow由PIL而来,是一个图像处理库.

    • pyBarcode - 在Python中创建条形码而不需要PIL.

    • pygram - 像Instagram的图像过滤器.

    • python-qrcode - 一个纯Python QR码生成器.

    • Quads - 基于四叉树的计算机艺术.

    • scikit-image - 用于(科学)图像处理的Python库.

    • thumbor - 一个小型图像服务,具有剪裁,尺寸重设和翻转功能.

    • wand - MagickWand的 Python绑定,ImageMagick的 C API.

    交互式

    交互式Python解释器(REPL)

    • bpython - 强大的交互式Python终端.

    • Jupyter Notebook (IPython) - 一个丰富的工具包,可帮助您充分利用交互式使用Python.

    • ptpython - 高级Python REPL构建在python-prompt-toolkit之上.

    日志

    用于生成和使用日志的库

    • Eliot - 复杂和分布式系统的日志记录.

    • logbook - Logging replacement for Python.

    • logging - (Python standard library) Logging facility for Python.

    • Sentry - A realtime logging and aggregation server.

    机器学习

    机器学习相关的资源库.

    • gensim - Gensim是用于主题建模、文档索引 和大型语料库的相似检索的Python库.

    • Metrics - 一个Python实现的一些流行的推荐算法.

    • NuPIC - Apache Spark的可扩展机器学习库.

    • scikit-learn - 机器学习最流行的Python库.

    • Spark ML - 是一个Python scikit构建和分析推荐系统.

    • vowpal_porpoise - 一个轻量级的Python包装的Vowpal Wabbit.

    • xgboost - 可扩展、便携式和分布式梯度提升(GBDT,GBRT或GBM)库,适用于Python、R、Java、Scala、C ++等。

    Microsoft Windows

    Microsoft Windows上的Python编程

    • Python(x,y) - 基于Qt和Spyder的基于科学应用的Python分发.

    • pythonlibs - 用于Python扩展程序包的非官方Windows二进制文件.

    • PythonNet - 与.NET公共语言运行时(CLR)的Python集成.

    • PyWin32 - 适用于Windows的Python扩展.

    • WinPython - 适用于Windows 7/8的便携式开发环境.

    自然语言处理

    人类语言处理的库

    • Jieba - 中文分词包.

    • langid.py - 独立语言识别系统.

    • NLTK - 构建Python程序以处理人类语言数据的领先平台.

    • Pattern - Python的Web挖掘模块.

    • SnowNLP - 用于处理中文文本的库.

    • spaCy - spaCy擅长大规模的信息提取任务.

    • TextBlob - 具有文本处理 、 情绪分析、词性标注、名词短语提取、翻译等功能的一个库.

    • TextGrocery - 一种基于LibLinear和Jieba的简单、高效的短文分类工具.

    包管理

    一种基于LibLinear和Jieba的简单,高效的短文分类工具

    • pip - Python包和依赖关系管理器.

    • conda - Conda是一个开源软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。它适用于Linux,OS X和Windows,并且是为Python程序创建的,但可以打包和分发任何软件.

    • Curdling - Curdling是用于管理Python包的命令行工具.

    • pip-tools - 能够保证你Python依赖为最新的一组工具.

    • wheel - 新的Python分发标准,旨在取代egg.

    科学计算

    科学计算的库

    • astropy - 一个用于天文学的社区Python库.

    • bcbio-nextgen - 其目标是克服在快速变化的研究领域工作在复杂管道上的个体开发人员的生物、算法和计算挑战.

    • bccb - 生物分析的库.

    • Biopython - Biopython是一套免费提供的生物计算工具.

    • cclib - 用于解析和解释计算化学包的结果的库.

    • NetworkX - 复杂社会网络研究的Python库.

    • NIPY - 神经成像工具包的集合.

    • NumPy - 用Python进行科学计算的基础软件包.

    • Open Babel - 一种化学工具箱,旨在呈现多种语言的化学数据.

    • ObsPy - 地震学的Python工具箱.

    • PyDy - Python Dynamics的缩写,用于协助动态运动建模中的工作流程.

    • PyMC - Python Dynamics的缩写,用于协助动态运动建模中的工作流程.

    • RDKit - 化学信息学和机器学习软件.

    • SciPy - SciPy是另一种使用NumPy来做高等数学、信号处理、优化、统计和许多其它科学任务的语言扩展。.

    • statsmodels - Python中的统计建模和计量经济学.

    • SymPy - Python中的统计建模和计量经济学.

    • Zipline - 一个Pythonic算法交易库.

    • BigQuant - 首个人工智能量化投资平台,可直接使用机器学习、深度学习技术开发量化策略

    特殊格式处理

    用于解析和操纵特定文本格式的库

    • General

      • tablib - 处理XLS,CSV,JSON,YAML中的表格数据集的模块.

    • Office

      • Marmir - 使用Python数据结构并将其转换成电子表格.

      • openpyxl - 用于读写Excel 2010 xlsx / xlsm / xltx / xltm文件的库.

      • pyexcel - 提供一个用于读取,操作和编写csv、ods、xls、xlsx和xlsm文件的APIs.

      • python-docx - 读取、查询和修改Microsoft Word 2007/2008 docx文件.

      • relatorio - 模板OpenDocument文件.

      • unoconv - 转换LibreOffice / OpenOffice支持的任何文档格式.

      • XlsxWriter - 用于创建Excel .xlsx文件的Python模块.

      • xlwings - 一个BSD许可的库,可以轻松地从Excel调用Python,反之亦然.

      • xlwt / xlrd - 从Excel文件中写入和读取数据和格式化信息.

    • PDF

      • PDFMiner - 从PDF文档中提取信息的工具.

      • PyPDF2 - 能够分割、合并和转换PDF页面的库.

      • ReportLab - 允许快速创建丰富的PDF文档.

    • Markdown

      • Mistune - 快速、功能齐全的纯文本解析器.

      • Python-Markdown - John Gruber的Markdown的Python实现.

    • YAML

      • PyYAML - Python的PyYAML - YAML实现.

    • CSV

      • csvkit - 用于转换和使用CSV的工具.

    • Archive

      • unp - 一个可以轻松解压存档的命令行工具.

    视频

    用于操纵视频和GIF的库.

    • moviepy - 用于基于脚本的电影编辑的模块,包括动画GIF等多种格式.

    • scikit-video - SciPy的视频处理模块.

    音频

    用来操作音频的库

    • audiolazy -Python 的数字信号处理包。

    • audioread – 交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。

    • beets – 一个音乐库管理工具及 MusicBrainz 标签添加工具

    • dejavu – 音频指纹提取和识别

    • django-elastic-transcoder – Django + Amazon Elastic Transcoder

    • eyeD3 – 一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。

    • id3reader – 一个用来读取 MP3 元数据的 Python 模块。

    • m3u8 – 一个用来解析 m3u8 文件的模块。

    • mutagen – 一个用来处理音频元数据的 Python 模块。

    • pydub – 通过简单、简洁的高层接口来操作音频文件。

    • pyechonest – Echo Nest API 的 Python 客户端

    • talkbox – 一个用来处理演讲/信号的 Python 库

    • TimeSide – 开源 web 音频处理框架。

    • tinytag – 一个用来读取MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。

    • mingus – 一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。

    网络爬虫

    网络站点爬取的库.

    • cola - 一个分布式爬虫框架.

    • Demiurge - 基于PyQuery 的爬虫微型框架.

    • feedparser - 通用 feed 解析器.

    • Grab - 站点爬取框架.

    • MechanicalSoup - 用于自动和网络站点交互的 Python 库.

    • portia - Scrapy 可视化爬取.

    • pyspider - 一个强大的爬虫系统.

    • RoboBrowser - A simple, Pythonic library for browsing the web without a standalone web browser.

    • Scrapy - 一个简单的Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器.

    Web框架

    全栈式web框架

    • Bottle - 快速、简单和轻量级的WSGI微网框架.

    • CherryPy - 一个简约的Python Web框架,HTTP / 1.1兼容和WSGI线程池.

    • Django - Python中最流行的Web框架.

    • Flask - 一个 Python 微型框架.

    • Pyramid - 一个小而快速的,开放源码的Python Web框架.

    • Sanic - 写得快的Web服务器.

    • Tornado - 个Web框架和异步网络库.

    • TurboGears - 拥有可扩展到完整堆栈解决方案的微型功能.

    • Web2py - 用于安全数据库驱动的基于Web的应用程序的全栈企业框架.

    代码质量

    • Codacy - 自动代码审查,以更快的速度运送更好的代码。免费开源.

    • Codecov - 代码覆盖仪表板.

    • Landscape - 托管连续的Python代码指标.

    • QuantifiedCode - 数据驱动、自动化、连续的代码审查工具.

    英文出处为:Awesome Python




    WEB框架:Django

    http://www.php2python.com/ 网站提供了PHP与PYTHON的对应函数


    * Parnassus山的拱顶巨大的Python代码库,包罗万象。既可以从上面下载代码参考学习,同时也是与Python有关程序的大列表。
        * Python号星际旅行船 著名Python社区,代码、文档、高人这里都有。
        * faqts.com的Python程序设计知识数据库 Python程序设计知识库,都是与Python有关的程序设计问题及解决方法。
        * 啄木鸟 Pythonic 开源社区 著名的(也可以说是最好的)国内Python开源社区。

    代码示例:






      if not os.path.isdir(new_path):

            os.makedirs(new_path)


    if(os.path.exists(rootdir) == False)


    os.system(cmd)


    fd = open('xxxx.txt', encoding='utf-8')

    for line in fd:

         print line

    fd.close()


    fd = open('xxxx.txt', 'a+', encoding='utf-8')

    fd.write('aaaaa' + '\n')

    fd.close()


    格式化打印JSON:

    print(json.dumps(data, indent=2))  # With indention



    import requests

    AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'

    HEADERS = {

            'User-Agent': AGENT,

            'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',

            'X-Requested-With':'XMLHttpRequest',

            'Accept':'*/*'

    session = requests.session()

    #模拟登录

    postdata = {

        'defaults':'xxx',

        'fromLogin':'xxx',

        'userName':'xxx',

        'password':'xxxx'

    }

    url = 'xxxxxxxx'

    login_info = session.post(url, headers = HEADERS, data = postdata,verify = False)

    if(login_info.status_code == requests.codes.ok):

        print('login success')

        return True

    else:

        print('login err')

        return False

    }



    import filecmp

    filecmp.cmp(r'文件1',r'文件2')


    theList = ["a","b","c"]
    joinedString = ",".join(theList)

    在一列字符串中去除空字符串
    targetList = [v for v in targetList if not v.strip()=='']

    遍历一个字典

    for k,v in aDict.iteritems():
       print k+v

    检查一列字符串中是否有任何一个出现在指定字符串里


    if any(x in targetString for x in aList):
       print "true"



    if text.startswith(u'\ufeff'):


    1、获取当前运行脚本所在目录 

       import sys    

       sys.path[0]

    2、获取当前工作路径 

       import os  

       os.getcwd()

    3、 获取系统时间

        import time   
        time.strftime('%Y-%m-%d',time.localtime(time.time()))
        输出格式类似2010-07-19


    三、数据库操作

    1、连接数据库

       import MySQLdb

    conn=MySQLdb.connect(host=host1,user=user1,passwd=pass1,port=port1,db=dbname) 

       cur=conn.cursor()

        cur.close()

       conn.close()

       cursor是用来执行命令的方法,close断开连接,可在connect和close直接进行数据库的操作

    2、数据库操作

    conn.select_db('python')

    count=cur.execute('select * from test')

    result=cur.fetchone()

    results=cur.fetchmany(5)

    results=cur.fetchall()

    conn.commit()

     

    select_db()选择数据库

    execute()执行单条sql语句,返回值为受影响的行数

    fetchone() 返回一条结果行

    fetchmany(size)接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

    fetchall() 返回所有结果值


    db = MySQLdb.connect("localhost","username","password","dbname")
    cursor = db.cursor()
    sql = "select Column1,Column2 from Table1"
    cursor.execute(sql)
    results = cursor.fetchall()
    for
    row in results:
       print row[0]+row[1] db.close()




    3、获取命令行输入的参数

        首先,必须 from optparse import OptionParser 类,创建一个 OptionParser 对象:

    parser = OptionParser() 

    然后,使用 add_option 来定义命令行参数:

    parser.add_option("-f", "--file", action="store", type="string", dest="filename")

    -f是短参数;--file是长参数,可选;type数据类型,默认为string;dest用来保存参数值得变量,如果没有指定将用参数名来对option对象的值进行存取,这里即为file。action可用值有store,store_true,stote_false等。 store_true 和 store_false,用于处理带命令行参数后面不带值的情况。

    例:-v,-q 等命令行参数:  

    parser.add_option("-v", action="store_true", dest="verbose") 

    parser.add_option("-q", action="store_false", dest="verbose") 

    这样的话,当解析到 ‘-v’,options.verbose 将被赋予 True 值,反之,解析到 ‘-q’,会被赋予 False 值。

    最后,一旦你已经定义好了所有的命令行参数,调用 parse_args() 来解析程序的命令行:  

    (options, args) = parser.parse_args()

    parse_args() 返回的两个值:options,它是一个对象(optpars.Values),保存所有命令行参数值。只要知道命令行参数名,如 file,就可以访问其对应的值:options.file 。

     例: 

    parser.add_option("-f", "--file", action="store", type="string", dest="filename") 

    args = ["-f", "foo.txt"] 

    (options, args) = parser.parse_args(args)

    print options.filename  

    最后将会打印出 “foo.txt”。




    SOCKET:

    import socket
    
    sk = socket.socket()
    sk.bind(("127.0.0.1",8080))
    sk.listen(5)
    
    conn,address = sk.accept()
    sk.sendall(bytes("Hello world",encoding="utf-8"))



    obj = socket.socket()
    obj.connect(("127.0.0.1",8080))
    
    ret = str(obj.recv(1024),encoding="utf-8")print(ret)




    上一篇:RS-485接口的防护电路设计及ADM2587隔离电路
    下一篇:利用VMWARE虚拟机获取USB数据报文并通过Virtual USB Analyzer分析