
python学习
pchaoda
这个作者很懒,什么都没留下…
展开
-
使用python在不改变原有excel的格式下,修改指定单元格格式
参考了https://segmentfault.com/q/1010000008270267。有一个账单,需要生成一个副本,但是需要将交易员列隐藏,不能改变原有的格式。xlsx的文件容易实现,使用openpyxl实现。xls的文件使用xlrd+xlutil实现。原创 2024-08-13 13:48:31 · 711 阅读 · 0 评论 -
python实现sm4,ecb模式加密
python实现输入十六进制字符串key和待加密的值,返回加密后的十六进制值。关键在于对十六进制字符串key的处理。原创 2023-02-22 16:12:40 · 1881 阅读 · 0 评论 -
python文件间全局变量的坑
python文件间全局变量的坑原创 2022-11-23 14:28:31 · 639 阅读 · 0 评论 -
python中的code object
python中code object属性的理解原创 2022-11-13 23:14:01 · 678 阅读 · 0 评论 -
python subprocess 获取到的pid总是比实际的小1
现象python subprocess 获取到的pid总是比实际的小1问题描述代码如下:用的subprocess.Popen,shell设置为True,有时候获取到的pid为实际的-1p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=path_of_strategy) # stdout, stderr = p.communicate() p原创 2022-05-20 17:36:16 · 2160 阅读 · 2 评论 -
flask-socketio实现简单websocket通信
flask-socketio实现简单websocket通信from app import socketio, emit, appfrom flask import requesttasks = {}class MonitorTask(object): def __init__(self, username, sid): self._running = True self.username = username self.sid = s原创 2022-04-07 13:49:35 · 1981 阅读 · 0 评论 -
python读取文件时,文件有内容,但是readline却为空
问题描述python读取文件时,文件有内容,但是readline却为空原因f = open('a.txt', 'w+')data = f.readline()w+会默认清空文件换成r+模式即可想要读文件,并且要覆盖原有的内容with open('a.txt', 'r+') as f: content = f.readline() f.seek(0) f.truncate() f.write("some other content")注意在编辑器里调试的时候打了断点,并且执行了原创 2022-03-14 15:53:24 · 4002 阅读 · 0 评论 -
gunicorn多worker之间实现共享数据
问题描述单进程启动时,全局变量的读写都没有问题,但是用gunicorn起的多worker,全局变量没法共享原因gunicorn多worker之间,数据没办法用全局变量共享解决方法因为需要同时修改数据,并且共享,所以选择共享文件的方式解决class BaseIncrease(object): _instance_lock = threading.Lock() num = None date = None _instance = None data_type原创 2022-03-14 15:43:00 · 3238 阅读 · 4 评论 -
获取指定字符串+递增数字的字符串
class BaseIncrease(object): _instance_lock = threading.Lock() num = None date = None _instance = None @classmethod @abc.abstractmethod def get_init_num(cls): pass @classmethod @abc.abstractmethod def get_se原创 2022-02-22 15:25:53 · 162 阅读 · 0 评论 -
python获取汉字首字母(多音字也可)
from pypinyin import Style, lazy_pinyinprint(''.join(lazy_pinyin("快乐2015TY", style=Style.FIRST_LETTER)).upper())原创 2022-02-18 16:00:44 · 863 阅读 · 0 评论 -
linux离线安装完python3,import ssl报错找不到_ssl
问题linux离线安装完python3,import ssl报错找不到_ssl解决方法安装openssl-devel后重新编译安装python3yum install openssl-devel # 安装openssl-devel安装参考linux离线安装pythonpython离线包下载地址原创 2022-01-26 14:40:35 · 2317 阅读 · 0 评论 -
python将有符号整数转为无符号整数
方法一、int.from_bytes(v.to_bytes)# 将占1字节的小端有符号数-43转换成无符号数小端整数213int.from_bytes((-43).to_bytes(1, 'little', signed=True), 'little', signed=False)# 213'''to_bytes(length, byteorder, *, signed=False) method of builtins.int instance Return an array of b原创 2022-01-13 10:39:58 · 6711 阅读 · 0 评论 -
python获取一段时间范围内的日期、月份
1、获取一段时间范围内的日期def get_date_iter(start_date, end_date): """ 获取指定时间段内的日期 :param start_date: 起始时间 --> str YYYYmmdd :param end_date: 结束时间 --> str YYYYmmdd :return: iter """ dt = datetime.datetime.strptime(start_date, '%Y%m%d'原创 2022-01-10 18:24:10 · 3544 阅读 · 0 评论 -
python常用的正则,如日期,时间等
1、日期的校验def check_date(date): """ 校验日期格式YYYYmmdd,包括闰月、二月份规则 :param date: str :return: True(False) """ reg = re.compile('^((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|' '原创 2022-01-10 18:21:13 · 1505 阅读 · 0 评论 -
批量修改数据,list的dict必须包含主键
session.bulk_update_mappings(modelsClass, list[dict{}])原创 2021-12-13 18:15:06 · 387 阅读 · 0 评论 -
ubuntu No module named ‘apt_pkg‘可能的解决方法
按照网上来的没解决$ sudo apt-get remove --purge python-apt$ sudo apt-get install python-apt -f$ sudo find / -name "apt_pkg.cpython-35m-x86_64-linux-gnu.so"$ cd /usr/lib/python3/dist-packages/$ sudo cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.cpython-36m原创 2021-11-22 15:33:19 · 3625 阅读 · 4 评论 -
嵌入式python环境的下载及bat文件的编写
需求来源写了个python脚本需要在windows上运行,python文件在运行的时候需要修改,不能打包成exe文件,所以需要提供python的运行环境。方案官方提供了嵌入式版本的下载python官网速度慢的可以到阿里镜像下载阿里镜像下载完后直接解压就能用写个bat文件运行python脚本即可%~dp0表示执行bat脚本所在的目录echo 'start'%~dp0python\python.exe %~dp0script.pyecho 'ok'pause...原创 2021-11-02 16:31:14 · 296 阅读 · 0 评论 -
python读取excel,对日期合时间的转换
from datetime import datetimefrom xlrd import xldate_as_tupleimport xlrdif __name__ == '__main__': book = xlrd.open_workbook(filename=r'C:\Users\think\Desktop\场次配置批量导入.xlsx') table = book.sheet_by_name("场次配置") for row_i in range(table.nr.原创 2021-10-22 17:10:36 · 1042 阅读 · 0 评论 -
python获取范围内步长为step的数,步长为float
def gen_yp(min_yp, max_yp, step): tmp = min_yp while tmp < max_yp: yield tmp tmp += step yield max_yp但是min_yp, max_yp, step要先转成decimal类型的gen_yp(Decimal(str(min_yp)), Decimal(str(max_yp)), Decimal(str(step)))...原创 2021-10-21 09:18:41 · 616 阅读 · 0 评论 -
Flask socketio+apscheduler定时推送任务,后端已经推送,前端收不到的情况
问题描述SocketIO(app, async_mode=async_mode, cors_allowed_origins="*"),async_mode=‘eventlet’,定时任务用的apscheduler里的BackgroundScheduler,尽管后端日志显示发送消息成功,但是前端收不到。解决方法eventlet使用的是协程,BackgroundScheduler实际是线程,两者是矛盾的。因此需要把线程绿化或者改变async_mode为threading模式方法一、async_mode=原创 2021-10-18 09:00:55 · 826 阅读 · 0 评论 -
python全栈常见面试题
一、python相关1、生成器与迭代器的区别2、yield,及为什么用yield能节约内存3、二、数据库相关三、redis相关四、前端知识原创 2021-06-30 21:44:15 · 781 阅读 · 0 评论 -
记一次python故障排查
1、环境上的代码出现找不到属性2、在环境上import docker是成功的,查看rpm的包的版本也是对的3、rpm装的python包是在/usr/lib/下的结果在/usr/local/下还有一个docker包,但是版本比较低,是pip安装的。包的搜索路径是有顺序的,/usr/local比/usr/lib优先,故先加载了版本较低的docker包,导致程序出错。具体的加载路径可以用sys.path查看['', '/usr/lib64/python36.zip', '/usr/lib6原创 2021-05-18 21:21:39 · 186 阅读 · 0 评论 -
xlrd处理Excel,包括合并单元格
import xlrddef get_data_by_sheet_name(file_path, sheet_name): tecs_excel_content = xlrd.open_workbook(file_path) table = tecs_excel_content.sheet_by_name(sheet_name) merged_cells = get_merged_cells(table.merged_cells) return get_sheet_d.原创 2021-01-23 23:09:38 · 520 阅读 · 1 评论 -
python获取本机所有IP地址的方法
import socketdef get_local_ip(): addrs = socket.getaddrinfo(socket.gethostname(), None) return [addr[4][0] for addr in addrs]原创 2021-01-23 23:08:20 · 1210 阅读 · 0 评论 -
python 中引入文件的坑
#aa.py#import commonfrom common import XXXFlag# common.XXXFlag = TrueXXXFlag = True一不注意踩到坑,如果aa.py使用from common import XXXFlag,然后改了XXXFlag=True,在bb.py中也是用from common import XXXFlag,此时打印的XXXFlag还是False因为from common import XXXFlag 表示定义一个变量XXXFlag指向.原创 2020-11-08 14:39:58 · 363 阅读 · 0 评论 -
解决pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘
换个快点的镜像pip --default-timeout=100 install 库的名字-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com转载 2020-11-07 21:13:36 · 895 阅读 · 0 评论 -
解决sqlachemy使用sqlite 外键不生效
def get_session(): engine = create_engine('sqlite:///test.db?check_same_thread=False', echo=False) Session = sessionmaker(bind=engine) Session = scoped_session(Session) session = Session() session.execute("PRAGMA foreign_keys=ON") //解决.原创 2020-09-28 22:59:29 · 512 阅读 · 0 评论 -
sqlachemy+sqlite进一步封装
api.py //封装数据库操作 增删改查from sqlalchemy.orm import sessionmakerfrom sqlalchemy.orm import scoped_sessionfrom sqlalchemy.orm import excfrom sqlalchemy import create_enginefrom contextlib import contextmanagerimport loggingimport datetimeLOG = log..原创 2020-09-28 22:54:47 · 282 阅读 · 0 评论 -
pecan转存Angular前端上传的文件
<input id="upload" name="fileSelect" type="file" accept=".xlsx,.xls" (change)="onFileSelect($event)"/>选择文件<button type="button" (click)="onSubmit()">提交</button>原创 2020-08-18 22:42:24 · 244 阅读 · 0 评论 -
将有序字典生成有序yml文件
生成有序的yml原创 2020-08-03 21:11:43 · 577 阅读 · 0 评论 -
Django之跨域问题常用的三种方法
方法一、在视图层view.py引入csrf_exempt,然后给视图函数加上@csrf_exempt装饰器from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef login(req): ......方法二、在urls.py中配置from django.views.decorators.csrf import csrf_exempturlpatterns = [ url(r'^view/$原创 2020-08-02 21:25:26 · 598 阅读 · 0 评论 -
python 列表list操作
list :用方括号将数据包起来,数据间用逗号隔开,数据类型可以不一样形如:list=['a','b',12,45,['a','panda']]1、访问列表中的值(1)访问一个数据,用一个下标 下标从0开始形如:print(list[2]),结果为:12(2)访问列表中几个数据左闭右开,第一个冒号左边的表示数据开始的位置,第一个冒号...原创 2019-01-02 23:26:09 · 227 阅读 · 0 评论 -
python标准化输出
1、旧式字符串格式化%操作符来实现,类似sprintf(),具体如表一表一 %s 字符串 %f 浮点数 %d 十进制整数 %c 单个字符 %b 二进制整数 %o 八进制整数 %i 十进制整数 %x 十六进制整数 %e(E) 以e(E)表示 %g(G) 输出长度较短的形式(科学计数或一般形式)...原创 2019-01-01 22:04:02 · 2417 阅读 · 0 评论