MingGW64 版本区别
1 | x86_64-posix-sjlj |
POSIX
:表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX
)
解释
DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:Gcc不支持(即将支持)
Python3-网络编程
简介
网络编程有一个重要的概念 socket(套接字),应用程序可以通过它发送或接收数据,套接字允许应用程序将 I/O 插入到网络中,并与网络中的其他应用程序进行通信。
Python 提供了如下两个 socket 模块:
- Socket 提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。
- SocketServer 提供了服务器中心类,可以简化网络服务器的开发。
Python Internet 模块
以下列出了 Python 网络编程的一些重要模块:
协议 | 功能用处 | 端口号 | Python 模块 |
---|---|---|---|
HTTP | 网页访问 | 80 | httplib, urllib, xmlrpclib |
NNTP | 阅读和张贴新闻文章,俗称为 帖子 | 119 | nntplib |
FTP | 文件传输 | 20 | ftplib, urllib |
SMTP | 发送邮件 | 25 | smtplib |
POP3 | 接收邮件 | 110 | poplib |
IMAP4 | 获取邮件 | 143 | imaplib |
Telnet | 命令行 | 23 | telnetlib |
Gopher | 信息查找 | 70 | gopherlib, urllib |
Python3-Excel操作
Python 中常用 Excel 操作库如下:
- pandas:数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。https://www.pypandas.cn/docs/
- xlutils:提供了一些 Excel 的实用操作,比如复制、拆分、过滤等,通常与 xlrd、xlwt 一起使用。缺点是仅支持 xls 文件。https://pypi.org/project/xlutils/
- XlsxWriter:拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。https://xlsxwriter.readthedocs.io/
- openpyxl:简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。https://openpyxl.readthedocs.io/en/latest/tutorial.html
- xlwings:可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。https://docs.xlwings.org/en/stable/
Python3-Word操作
Python 提供了 python-docx 库操作 Word 文档。
安装 pip install python-docx
。
导入模块
1 | from docx import Document |
Python3-XML操作
Python3-JSON操作
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
json 模块主要提供了 dump
、dumps
、load
、loads
方法对 JSON 数据进行编解码。
Python3-操作SqLite
Python3-MySQL操作
5 种方式操作 MySQL。
MySQL-python
MySQL-python 也称 MySQLdb,基于 C 库开发,曾经是一个十分流行的 MySQL 驱动,具有出色的性能,但其早已停更,仅支持 Python2,不支持 Python3,现在基本不推荐使用了,取而代之的是它的衍生版。
mysqlclient
MySQLdb 的 Fork 版本,完全兼容 MySQLdb,支持 Python3,它是 Django ORM 的依赖工具,如果你喜欢用原生 SQL 操作数据库,那么推荐使用它。
PyMySQL
PyMySQL 采用纯 Python 开发,兼容 MySQLdb,性能不如 MySQLdb,安装方便,支持 Python3。
peewee
peewee 是一个流行的 ORM 框架,实现了对象与数据库表的映射,兼容多种数据库,我们无需知道原生 SQL,只要了解面向对象的思想就可以简单、快速的操作相应数据库,支持 Python3。
SQLAlchemy
SQLAlchemy 是一个 ORM 框架,同时也支持原生 SQL,支持 Python3,它类似于 Java 的 Hibernate 框架。
Python3-多进程
Process 类
multiprocessing
模块通过创建一个 Process 对象然后调用它的 start() 方法来生成进程,Process 与 threading.Thread API 相同。
进程对象,表示在单独进程中运行的活动。
1 | multiprocessing.Process(group=None, target=None, name=None, |
参数:
group:仅用于兼容 threading.Thread,应该始终是 None。
target:由 run() 方法调用的可调用对象。
name:进程名。
args:目标调用的参数元组。
kwargs:目标调用的关键字参数字典。
daemon:设置进程是否为守护进程,如果是默认值 None,则该标志将从创建的进程继承。