python
yournevermore
这个作者很懒,什么都没留下…
展开
-
sqlalchemy 中 flush()和commit()
flush() 会将session中的数据刷到数据库中,使数据库主键自增;但不会写到磁盘里。当别的session查询时并不会查到flush的数据;插入数据时,session1 flush()一条, session2 commit()一条,session2插入的主键会跳过session1 flush()产生的主键;# coding=utf8import timeimport tracebackfrom sqlalchemy import create_enginefrom sqlalchem.原创 2020-10-28 20:28:20 · 3947 阅读 · 0 评论 -
python exec() 函数详解(转)
我们都知道 exec 函数可以用来动态执行 python 代码:123>>> foobar123那么大家是否知道 exec 函数还支持两个可选参数呢(不支持通过关键字去指定参数)?:1这两个参数可以用来指定执行代码时可以使用的全局变量和局部变量, 以及收集执行代码后的全局变量和局部变量。下面将举例说明指定 globals 和 locals 时的效果。转载 2022-08-24 16:44:07 · 3243 阅读 · 0 评论 -
sqlalchemy 中 with_lockmode(‘update‘)的作用
在使用sqlalchemy查询时用到了 with_lockmode('update') 结构,其sql为:FOR UPDATE模式除了update,还有 read:LOCK IN SHARE MODElock in share mode 就是共享锁如果事务对某行数据加上共享锁之后,可进行读写操作;其他事务可以对该数据加共享锁,但不能加排他锁,且只能读数据,不能修改数据。 某个事物想进行修改数据操作,那他必须等其他事物的共享锁都释放完毕才能进行修改操作for update 排他锁原创 2022-03-23 03:04:37 · 1231 阅读 · 0 评论 -
python线程Semaphore和Lock简单例子
# coding=utf8import threadingimport timeimport randomfrom threading import Semaphorethreads = []lock_sm = Semaphore(2)lock_print = threading.Lock()class connectdb(threading.Thread): def run(self): while True: lock_sm.ac.原创 2022-01-11 16:30:41 · 277 阅读 · 0 评论 -
python2.7通过java调Oracle数据库
python调oracle有两种方法,1通过cx_oracle(需要各种配置,本地还需要装oracle客户端),2通过java的jdbc。准备:需要安装java环境,java的驱动jar包,jaydebeapi第三方包,jpype第三方包,代码:# coding=utf8 try: con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', 'j原创 2021-10-21 15:19:27 · 352 阅读 · 0 评论 -
python 全局变量使用
参考python垃圾回收规则,全局变量在其模块被导入后,将一直存在于内存当中。参考:https://zhuanlan.zhihu.com/p/59636541http://www.voidcn.com/article/p-wjtzwolh-bwk.html原创 2021-05-10 00:52:50 · 144 阅读 · 0 评论 -
python元类
什么是元类我们知道,实例对象是由类来创建,那么类又是由什么来创建的呢? 答案就是元类。元类基本都不会用到,但是就算不用到,也应该去熟悉一下概念。类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:In [1]: class FatBoy(object): ...: pass ...: .转载 2021-03-22 01:17:56 · 116 阅读 · 0 评论 -
sys.path和reload() 理解
# coding=utf8import demo_for_import_pkgimport timeimport sys# print(sys.modules)# print(sys.modules["demo_for_import_pkg"])# print(type(sys.modules["demo_for_import_pkg"]))# print(sys.modules["demo_for_import_pkg"])# print(demo_for_import_pkg.my.原创 2021-03-21 19:29:29 · 565 阅读 · 1 评论 -
Exception AttributeError: “‘NoneType‘ object has no attribute ‘error‘“ in <bound method Connection._
使用redis 3.5.2 ,自己写了一个redis工具类,外部的python的脚本去调他,在脚本执行完之后,提示该错误。原因:真正报错的位置在:connection.py 中Stack Overflow大神做出了解释:os 模块在调用Connection.__del__之前已经被卸载了,打印了一下,确实是None。解决的办法,在对redis操作完之后,主动 conn.connection_pool.disconnect() ,或者更新redis包到3.5.3:...原创 2020-11-09 19:50:55 · 1548 阅读 · 0 评论 -
python2 解决 unicode转中文问题
import json# 避免\x0e 问题import sysreload(sys)sys.setdefaultencoding('utf-8')#def bbb(): # bbb = {u"111":u"\u73bb\u7483"} print bbb print(json.dumps(bbb).decode("unicode-escape"))def ccc(): # dict1 = {"data": ["\u73bb\u7.原创 2020-08-30 22:36:03 · 1902 阅读 · 0 评论 -
python 用xmltodict库,解析xml字符串获取节点数据
import xmltodictdef xml2dict(doc): #xml To dict convertedDict = xmltodict.parse(doc, encoding='utf-8') Bucket_lis = convertedDict["ListAllMyBucketsResult"]["Buckets"]["Bucket"] lis =[] if isinstance(Bucket_lis, list): for i i.原创 2020-07-21 17:34:51 · 878 阅读 · 0 评论 -
python 的 re库获取两个字符中间的内容(转)
问题背景:当我们爬取网页信息时,对于一些标签的提取是没有意义的,所以需要提取标签中间的信息。解决办法:用到了re包下的函数方法1:用到了research()方法和group()方法方法2:用到了findall()方法具体实现:import re# 匹配两个字符中间的所有字符a = '<p>life is short, i use python<a/>i love it<p>'r = re.search('<p>(...转载 2020-06-02 12:20:14 · 11379 阅读 · 3 评论 -
python2.7 发邮件脚本
import smtplibimport timefrom email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimpor...原创 2020-04-04 04:47:15 · 271 阅读 · 0 评论 -
windows系统 换pip源
1. 打开c盘,在地址栏输入%appdata%后回车:2. 新建文件夹pip,在pip文件夹中新建一个配置文件pip.ini:写入[global]index-url = http://mirrors.aliyun.com/pypi/simple/[install]trusted-host = mirrors.aliyun.com保存。...原创 2020-02-25 02:19:46 · 174 阅读 · 0 评论 -
Python中的ThreadLocal变量
我们知道多线程环境下,每一个线程均可以使用所属进程的全局变量。如果一个线程对全局变量进行了修改,将会影响到其他所有的线程。为了避免多个线程同时对变量进行修改,引入了线程同步机制,通过互斥锁,条件变量或者读写锁来控制对全局变量的访问。只用全局变量并不能满足多线程环境的需求,很多时候线程还需要拥有自己的私有数据,这些数据对于其他线程来说不可见。因此线程中也可以使用局部变量,局部变量只有线程自身可以...转载 2020-02-20 02:03:44 · 447 阅读 · 0 评论 -
python 面试基础
该文110道面试题全部来自于大家笔试面试时候拍照后发到群里求助的题目,并自己一道一道亲自做了,大部分题目属于巩固基本python知识点的题目,希望对基本知识不熟悉的同学...转载 2020-02-17 19:17:43 · 1930 阅读 · 0 评论 -
明确 python迭代器与生成器的区别 (转)
迭代 生成for循环遍历的原理for循环遍历的原理就是迭代,in后面必须是可迭代对象为什么要有迭代器对于序列类型:字符串、列表、元组,我们可以使用索引的方式迭代取出其包含的元素。但对于字典、集合、文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器1.可...转载 2020-01-18 18:37:37 · 234 阅读 · 0 评论 -
python 中的随机函数(转)
random()random()方法:返回随机生成的一个实数,它在[0,1)范围内运用random()方法的语法:import random #random()方法不能直接访问,需要导入random模块,然后通过random静态对象调用该方法random.randomrandom.random()方法用于生成一个0到1的随机浮点数:0<=n<1.0>...转载 2019-12-04 09:50:39 · 191 阅读 · 0 评论 -
python 获取带权重的随机数
#!/usr/bin/env python# -*- coding: utf-8 -*-import randomdef random_weight(weight_data): total = sum(weight_data.values()) # 权重求和 ra = random.uniform(0, total)# 在0与权重和之前获取一个随机数 curr_s...转载 2019-11-27 16:14:36 · 839 阅读 · 0 评论 -
python GIL与线程互斥锁的区别
GIL的作用是,对于一个解释器,只能有一个thread在执行bytecode。所以任何时刻只有一条bytecode在被一个thread执行。Python的多线程并不是严格意义上的并行执行,GIL在bytecode层面上保证了thread safe,但是python多线程包里依然提供了加锁机制,这是为何?假设有个操作,比如x += 1,这个操作需要多个bytecodes操作,在执行这个操作的...转载 2019-08-13 16:38:03 · 231 阅读 · 0 评论 -
位运算面试技巧(转)
转自:https://blog.csdn.net/shanghairuoxiao/article/details/75386508左移和右移规则对左移而言,移动正数和负数规则是相同的;对于右移而言,则有些差别,正数补0,负数补1。 举例说明: 对于一个16位的整数:0000 0000 0000 0101,左移一位是0000 0000 0000 1010,右移一位是0000 0000 000...转载 2019-07-30 17:19:40 · 99 阅读 · 0 评论 -
python @staticmethod和@classmethod装饰器使用
1.通常来说,我们使用一个类的方法时,首先要实例化这个类,再用实例化的类来调用其方法class Test(object): """docstring for Test""" def __init__(self, arg=None): super(Test, self).__i...转载 2019-03-18 11:23:03 · 212 阅读 · 0 评论 -
python os.fork()
参考:https://www.cnblogs.com/gengyi/p/8564052.html转载 2019-08-25 02:30:59 · 237 阅读 · 0 评论 -
python 中 subprocess 和 multipleprocess的区别
关于python的进程,常用的库有两个:multiprocessing和subprocess模块。具体使用时,想要实现并发调用外部指令,应该用哪个模块呢?研究下两个模块区别:multiprocessing的核心机制是fork,重开一个进程,首先会把父进程的代码copy重载一遍,但是在windows平台上是不支持fork的,那windows上如何使用呢?--答案是,if main入口中,就...转载 2019-08-25 02:35:25 · 3083 阅读 · 0 评论 -
python面试题
1、下面这段代码的输出结果是什么?请解释。前百度面试官总结的:8道python面试必考问题怎样修改extendList的定义能够产生以下预期的行为?上面代码输出结果将是:前百度面试官总结的:8道python面试必考问题很多人都会误认为list1=[10],list3=[‘a’],因为他们以为每次extendList被调用时,列表参数的默认值都将被设置为[].但实际上的情...转载 2019-09-23 11:00:58 · 122 阅读 · 0 评论 -
python获取环境变量(转)
import osenv_dist = os.environ # environ是在os.py中定义的一个dict environ = {}print env_dist.get('JAVA_HOME')print env_dist['JAVA_HOME']# 打印所有环境变量,遍历字典for key in env_dist: print key + ' : ' + env...转载 2019-07-30 15:10:29 · 2553 阅读 · 0 评论 -
python 中 with 语句原理(转)
with语句的工作原理:紧跟with后面的语句会被求值,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as关键字后面的变量,当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。with语句最关键的地方在于被求值对象必须有__enter__()和__exit__()这两个方法,那我们就可以通过自己实现这两方法来自定义with语句处理...转载 2019-06-18 01:00:28 · 230 阅读 · 0 评论 -
python单元测试详解(转)
转自:https://blog.csdn.net/xiaoquantouer/article/details/75089200一、什么是单元测试单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。比如对于函数abs(),我们可以编写的测试用例为:(1)输入正数,比如1、1.2、0.99,期待返回值与输入相同(2)输入复数,比如-1、-1.2、-0.99,期待返回值与输...转载 2019-06-12 02:04:09 · 7627 阅读 · 2 评论 -
python 中的 orm(转)
转自:https://blog.csdn.net/girlgolden/article/details/81557009ORM概念ORM(Object Ralational Mapping,对象关系映射)用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。...转载 2019-04-11 13:22:43 · 346 阅读 · 0 评论 -
python 装饰器(decorator)、@functools.wraps、@staticmethod、@classmethod(转)
装饰器1、要了解装饰器,就需要知道什么是高阶函数,高阶函数就是将函数作为参数赋值给另一个函数2、Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数3、decorator是在被装饰的函数前加@函数名的函数来修饰下面的函数#被装饰函数def now(): print(‘2015-3-3’)想要对被装饰函数添加(修饰)...转载 2019-04-11 11:04:18 · 182 阅读 · 0 评论 -
python3 ping IP 和 测试rtsp视频流连接
#ping ipresult = os.system('ping -n 1 -w 1 %s' % url)if result==0: #ping通了else: #没ping通#rtspcap = cv2.VideoCapture(url)if cap.isOpened(): #okelse: #nok原创 2019-03-27 14:44:40 · 2499 阅读 · 0 评论 -
Python 线程和进程和协程总结(转)
转自:https://blog.csdn.net/w17688977481/article/details/88993350线程和进程和协程进程进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位;进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响;进程间可以通过信号、信号量、共享内存、管道、队列等来进行通信;进程创建、销毁、上...转载 2019-04-03 21:04:30 · 141 阅读 · 0 评论 -
python PIL生成验证码,设置字体格式 IOError: cannot open resource
python3 用PIL生成验证码时,设置字体格式报错font = ImageFont.truetype('XXX.ttf', 40)IOError: cannot open resource这是因为PIL无法定位到字体文件的位置,可以进行以下操作:1、进入python的安装目录2、搜索.ttf3、即可查到自己的电脑有哪些中字体格式,然后随机选一种并把绝对路径替换到代码中的...原创 2019-03-18 14:42:48 · 1273 阅读 · 0 评论 -
python装饰器@property(转)
转自:https://www.cnblogs.com/superxuezhazha/p/5793450.html@property考察 Student 类:class Student(object): def __init__(self, name, score): self.name = name self.score = score当我们想要...转载 2019-03-18 11:02:16 · 148 阅读 · 0 评论 -
Python sys.stdout.flush()的作用(转)
python的stdout是有缓冲区的,给你个例子你就知道了import timeimport sysfor i in range(5): print i, #sys.stdout.flush() time.sleep(1)这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出...转载 2019-03-12 14:27:02 · 1263 阅读 · 1 评论 -
python 文件相互引用的问题解决
在改别人的代码时 , 新加的代码与主文件相互引用的问题 , 解决不了 ,想把主文件的对象作为参数传过去也没能实现 ,最后只好把新的代码放到了主文件里 , 搞不定就加入吧.........WTF...原创 2019-03-19 21:15:06 · 3165 阅读 · 0 评论 -
python struct.pack用法(转)
1、 struct.pack struct.pack用于将Python的值根据格式符,转换为字符串(因为Python中没有字节(Byte)类型,可以把这里的字符串理解为字节流,或字节数组)。其函数原型为:struct.pack(fmt, v1, v2, …),参数fmt是格式字符串,关于格式字符串的相关信息...转载 2019-03-11 14:01:39 · 20655 阅读 · 0 评论 -
python queue常见问题(转)
转自:https://www.cnblogs.com/wt11/p/5952500.htmlpython 中,队列是线程间最常用的交换数据的形式。queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。1. 阻塞模式import queueq =queue.Queue(10) #创建一个队列......foriinrang...转载 2019-03-05 11:40:25 · 3292 阅读 · 0 评论 -
python 多进程的 pipe 和queue
转自:https://blog.51cto.com/rfyiamcool/1549857这两天温故了python 的multiprocessing多进程模块,看到的pipe和queue这两种ipc方式,啥事ipc? ipc就是进程间的通信模式,常用的一半是socke,rpc,pipe和消息队列等。今个就再把pipe和queue搞搞。#coding:utf-8import m...转载 2019-03-01 18:56:22 · 1141 阅读 · 0 评论 -
python 是如何解决SQL 注入问题的(转)
转自:http://blog.neargle.com/2016/07/22/pythonweb-framework-dev-vulnerable/ SQL注入所产生的条件是用户输入可构造sql语句并带入数据库执行。在Web应用中,容易产生SQL注入的输入一般是GET或POST请求参数。在PythonWeb开发中,以Flask框架为例,Flask里获取GET或POST请求数据的方...转载 2019-04-11 14:04:01 · 3981 阅读 · 0 评论