Python
文章平均质量分 50
miaow~miaow
miaow...
展开
-
Python: SQLAlchemy 处理 PostgreSQL on conflict
目录一、数据模型定义二、ON CONFLICTDO NOTHING - 忽略本条数据的插入三、ON CONFLICT DO UPDATE - 更新旧数据一、数据模型定义models.py 文件内是数据模型定义。import datetimeimport sqlalchemyfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class Dog(Base):.原创 2021-12-08 18:20:57 · 2522 阅读 · 0 评论 -
Python: SQLAlchemy 打印 SQL语句
目录一、数据模型定义二、打印简单的 SQL三、打印稍微复杂的 SQL四、打印和方言相关的SQL五、显示参数一、数据模型定义import sqlalchemyfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class Cat(Base): __tablename__ = "cat" id = sqlalchemy.Column(sqlalch原创 2021-12-07 20:57:23 · 4972 阅读 · 0 评论 -
Python: 使用IP2Location 地理数据库解析IP所在的地理位置
一、注册&下载数据库目前如果要使用 IP2Location 提供的数据库,需要先注册,然后才让下载,主页位置:免费IP地理位置数据库。完成注册和登录后,可以在下载页面(IP2Location LITE Log InIP2Location LITE log in.https://lite.ip2location.com/database-download)看到下载选项...原创 2021-11-29 16:02:55 · 5498 阅读 · 0 评论 -
Python: 线程之间通信(源码拷贝即用)
一、线程之间的几种通信方式threading.Lock()/threading.RLock() - 互斥锁,在某一时刻只能有一个使用者访问该资源 threading.Condition() - 资源锁,可以提供挂起/唤醒等功能 threading.Event() - 可以提供类似资源锁的挂起/唤醒功能,和资源锁的不同在于二、Lock()三、Condition()四、Event()五、小结...原创 2021-11-26 17:24:37 · 1196 阅读 · 0 评论 -
Python: 多线程与互斥锁
目录一、在 Python 使用多线程二、互斥锁&防止死锁一、在 Python 使用多线程import threadingimport timeimport randomclass MyThread(threading.Thread): def __init__(self, name, mutex, arg): threading.Thread.__init__(self, daemon=True) self.name = name原创 2021-11-24 17:22:46 · 1297 阅读 · 0 评论 -
Python: SQLAlchemy 增、删、改、查
目录一、完整代码1.1 代码1.2 运行结果二、增删改查2.1 增加一行记录2.2 修改一行记录2.3 查询一行记录2.4 删除一行记录一、完整代码1.1 代码import uuidimport datetimeimport sqlalchemyimport sqlalchemy.orm as ormfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_ba原创 2021-11-24 16:27:03 · 7834 阅读 · 1 评论 -
Python: SQLAlchemy、engine、session 与多线程
一、engine与 connectionpool_sizemax_overflow二、session与多线程三、多线程共享 session原创 2021-11-23 20:56:57 · 6112 阅读 · 1 评论 -
Python: try、except、else、finally 执行顺序
目录一、触发了异常时的顺序1.1 异常演示代码1.2 异常代码执行顺序二、未触发异常时的顺序2.1 无异常演示代码2.2 无异常代码执行顺序一、触发了异常时的顺序1.1 异常演示代码def exception_happen(): try: print("step 1") raise Exception("step 2") except Exception as e: print("step 3")原创 2021-11-20 11:48:42 · 876 阅读 · 0 评论 -
Python:使用SSH隧道链接数据库
目录一、SSH隧道二、使用sshtunnel 包建立隧道2.1)使用账户、密码登录建立隧道2.2)使用密钥文件代替密码三、通过SSH隧道链接数据库一、SSH隧道SSh隧道,就是当本地机器因为网络限制无法直接连接目标机器时,可以先在本地机器上,用ssh协议登录一台跳板机,然后本地机器可以通过跳板机链接目标机器。本地机器和跳板机之间的这个链接,就是SSH隧道。二、使用sshtunnel 包建立隧道2.1)使用账户、密码登录建立隧道在Python 中可以使用ssh...原创 2021-11-07 00:10:56 · 5760 阅读 · 3 评论 -
Python:遍历目录 walk、listdir
一、使用 os.path.walk 遍历目录代码:# -*- coding: utf-8 -*-import osimport sysdef walk_dir(dirname): file_list = list() for root, dirs, files in os.walk(dirname): for f in files: full_name = os.path.join(root, f) file原创 2021-07-22 10:14:00 · 692 阅读 · 1 评论 -
Python:使用 PIL.Image 将图片从 PPM 格式转为PNG格式
目录一、安装 PIL二、将PPM格式转为PNG格式一、安装 PILpip install Pillow二、将PPM格式转为PNG格式Python 代码:# -*- coding:utf-8 -*-from PIL import Imageimport sysdef convert(filename): im = Image.open(filename) # open ppm file newname = filename[:-4] +原创 2021-06-30 17:53:31 · 1948 阅读 · 0 评论 -
Python:使用 matplotlib 画曲线
一、安装 matplotlibpip install matplotlib次命令还会自动安装如下依赖包:numpypillowkiwisolvercyclerpyparsingpython-dateutilsix二、画一条简单的曲线:y = x ** 2Python 代码:import matplotlib.pyplot as pltXs = [x for x in range(100)]Ys = [x ** 2 for x in Xs]plt.plot(原创 2021-06-30 09:58:48 · 2199 阅读 · 1 评论 -
Python:加密SQLite3数据库
一、加密SQLite3的库sqleet:支持到 sqlite3-v3.31.1 SQLite3MultipleCiphers:支持到 sqlite3 最新版本原创 2021-06-18 19:18:53 · 4976 阅读 · 3 评论 -
Python:调用C库中的函数
目录一、向C函数传入 int,且C函数返回 int二、向C函数传入 string,且C函数返回 int三、向C函数传入 string,且C函数返回 string一、向C函数传入 int,且C函数返回 int1.1)C代码(返回两个整数之和)int int_plus(int a, int b){ return a + b;}编译C函数库:gcc -g -Wall -I. -shared -Wall -lc plus.c -o plus.so1.2)Pytho原创 2021-04-13 19:18:39 · 329 阅读 · 2 评论 -
Python:读取 csv 文件并插入到 PostgreSQL 数据库
目录一、读取 csv 文件二、创建数据库链接三、读取 csv 数据并插入到数据库一、读取 csv 文件Python:使用 csv 模块读写 csv 文件二、创建数据库链接# -*- coding: utf-8 -*-import sqlalchemyimport sqlalchemy.orm as ormfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()原创 2021-03-23 15:57:03 · 2661 阅读 · 1 评论 -
Python:使用 csv 模块读写 csv 文件
目录一、读取csv 文件二、写入 csv 文件一、读取csv 文件# -*- coding: utf-8 -*-import csvimport sysdef read_csv_file(filename): with open(filename, 'r') as f: csv_reader = csv.reader(f) header_row = next(csv_reader) print(header_row) #..原创 2021-03-23 15:16:52 · 1206 阅读 · 0 评论 -
Python:使用 PyPDF2 分割 PDF 文档
安装 PyPDF2:pip install pypdf2分割 PDF 文件的 Python 代码:# -*- coding: utf-8 -*-import osimport sysfrom PyPDF2 import PdfFileReader, PdfFileWriterdef splitPdf(filename, page): print("src file [{0}], page [{1}-{2}], sub file [{3}]".format(filename原创 2021-03-22 14:55:35 · 273 阅读 · 0 评论 -
Python:使用 PyPDF2 合并 PDF 文件
安装 PyPDF2:pip install pypdf2合并 PDF 文件的 Python 代码:# -*- coding: utf-8 -*-import sysfrom PyPDF2 import PdfFileMergerdef mergePdf(files, targetFile): merger = PdfFileMerger() for f in files: merger.append(f) merger.write(str(t原创 2021-03-20 00:31:09 · 1793 阅读 · 0 评论 -
Python:安装 PyQt5
使用的源是豆瓣的安装源:pip install pyqt5 -i https://pypi.douban.com/simple/原创 2021-03-20 00:12:13 · 101 阅读 · 0 评论 -
Python:Windows安装 pgzero、pygame
一、在Windows中安装Python3先在 pip网站上查看一下 pgzero支持的 python 版本:https://pypi.org/project/pgzero/#files目前来看(2021.03.18)是试吃的原创 2021-03-18 23:21:37 · 5849 阅读 · 0 评论 -
Python:Python3中创建 venv 虚拟环境
在 Python3 中,venv 已经作为一个模块存在了,所以在 Python3 中创建 venv 很方便,步骤如下:在你要创建 venv 的地方执行如下语句:pythom3 -m venv myvenv创建完成后,执行如下命令使用 venv:source myvenv/bin/activate执行完上面的命令后,命令行的提示信息左边会出现(myvenv):(myvenv) [root@hostname 13:15:47 ~]$ ...原创 2021-03-18 22:04:59 · 553 阅读 · 1 评论 -
Python:Python3中的print
在 Python3 中,print是一个函数,通过 help(print) 可以看到 print 函数的参数:(myvenv) [root@hostname 13:15:47 ~]$ pythonPython 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linuxType "help", "copyright", "credits" or "license" for more.原创 2021-03-18 21:39:46 · 480 阅读 · 0 评论