1
2
3
4
5
6
7
8
x86_64-posix-sjlj
x86_64-posix-seh
x86_64-win32-sjlj
x86_64-win32-seh
i686-posix-sjlj
i686-posix-dwarf
i686-win32-sjlj
i686-win32-dwarf

POSIX:表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )

解释

DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:Gcc不支持(即将支持)

阅读全文 »

简介

网络编程有一个重要的概念 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
阅读全文 »

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/
阅读全文 »

Python 提供了 python-docx 库操作 Word 文档。

安装 pip install python-docx

导入模块

1
2
3
4
5
6
7
8
9
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_PARAGRAPH_ALIGNMENT # 设置对象居中、对齐等。
from docx.enum.text import WD_TAB_ALIGNMENT, WD_TAB_LEADER # 设置制表符等
from docx.enum.text import WD_LINE_SPACING # 设置行间距
from docx.shared import Inches # 设置图像大小
from docx.shared import Pt # 设置像素、缩进等
from docx.shared import RGBColor # 设置字体颜色
from docx.shared import Length # 设置宽度
from docx.oxml.ns import qn
阅读全文 »

概述

Python 有三种方法解析XML:SAX,DOM以及 ElementTree:

  • DOM:DOM 方式会将整个 XML 读入内存,在内存中解析成一个树,通过对树的操作来操作 XML,该方式占用内存较大,解析速度较慢。

  • SAX:SAX 方式逐行扫描 XML 文档,边扫描边解析,占用内存较小,速度较快,缺点是不能像 DOM 方式那样长期留驻在内存,数据不是长久的,事件过后,若没保存数据,数据会丢失。

  • ElementTree:ElementTree 方式几乎兼具了 DOM 方式与 SAX 方式的优点,占用内存较小、速度较快、使用也较为简单。

阅读全文 »

Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:

  • json.dumps(): 对数据进行编码。
  • json.loads(): 对数据进行解码。

json 模块主要提供了 dumpdumpsloadloads 方法对 JSON 数据进行编解码。

阅读全文 »

基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import sqlite3

# 连接数据库
conn = sqlite3.connect('test.db')

# 创建游标
cs = conn.cursor()

## 增删改查操作

# 关闭 cursor
cs.close()

# 关闭连接
conn.close()
阅读全文 »

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 框架。

阅读全文 »

Process 类

multiprocessing 模块通过创建一个 Process 对象然后调用它的 start() 方法来生成进程,Process 与 threading.Thread API 相同。

进程对象,表示在单独进程中运行的活动。

1
2
multiprocessing.Process(group=None, target=None, name=None, 
args=(), kwargs={}, *, daemon=None)

参数:

  • group:仅用于兼容 threading.Thread,应该始终是 None。

  • target:由 run() 方法调用的可调用对象。

  • name:进程名。

  • args:目标调用的参数元组。

  • kwargs:目标调用的关键字参数字典。

  • daemon:设置进程是否为守护进程,如果是默认值 None,则该标志将从创建的进程继承。

    阅读全文 »
0%