
Python 编程
人生苦短,我用Python。
JNingWei
工作后比较忙,不怎么看账号和消息。回复不及时望见谅。
展开
-
【pytorch】固定(freeze)住部分网络
【pytorch】固定(freeze)住部分网络原创 2021-09-15 00:44:44 · 19121 阅读 · 5 评论 -
【python】修改进程优先级
import psutilimport osvip_process_num = <指定最大的生效进程数,例如:1000>counter = 0for proc in psutil.process_iter(): if (proc.name()=='<指定进程名称,例如:python>' and proc.username()=='<指定用户名>'): counter += 1 if counter <= vip原创 2021-09-15 00:34:47 · 2138 阅读 · 0 评论 -
【python】multiprocess:传递参数
如果需要往多进程传递的参数只有一个,则需要在该参数后面加上逗号:pool.apply_async(self.get_url, args=(name,), callback=update)原创 2021-09-15 00:30:37 · 764 阅读 · 0 评论 -
【python】multiprocess:修改已有键值对
修改字典往 multiprocess.Manager().dict() 里面加入新的键值对没问题,但是修改已有键值对的value就会报错。 这是因为:只能换新,不能修:无法进入 self.dict[key] 下面进行修正,只能完全替换最上层的键值对。参考:【Python多进程】Manager中的dict深层定义无效python多进程变量Manager.dict() | 深度赋值无效问题解决...原创 2021-09-15 00:18:44 · 519 阅读 · 0 评论 -
ValueError: tile cannot extend outside image
原因由于输入图片中存在w=0或h=0的情况导致的,触发了PIL的检查机制。解决加验证:if w < 10 or h < 10: continue原创 2021-09-15 00:14:21 · 1920 阅读 · 0 评论 -
【python】生成图片对应的md5
代码import hashlibdef img_to_md5(_path): fd = open(_path, 'rb') fmd5 = hashlib.md5(fd.read()).hexdigest() fd.close() return fmd5即使是在原有的图片上点一个小黑点,也会造成md5的改变。原创 2021-09-15 00:12:43 · 2426 阅读 · 0 评论 -
【python】面向对象的三大特征(封装、继承、多态)
继承子类直接继承一个父类(基类),包括父类的所有属性和函数。多态同一个函数在多个类中都有(可能实现方法各有不同),最后哪个类作为传入对象,就调用谁家的该函数。封装:隐藏实现过程,只提供现成的调用接口给外部。...原创 2020-05-17 18:44:43 · 311 阅读 · 0 评论 -
【python】快排的三种实现
def quick_sort(x, low, high): if len(x) <= 1 or low >= high: return x base, l, r = x[low], low, high while l < r: while l < r and x[r] >= base: r...原创 2020-04-28 09:07:16 · 347 阅读 · 0 评论 -
【python】import注意事项
尽量不要这么写:from lib import *可能会导致重复压入。而且万一遇上重命名,就会出现覆盖而导致的出错。所以最好避免这种写法。原创 2020-04-24 13:34:10 · 280 阅读 · 0 评论 -
python多进程打印进度条
import timefrom tqdm import tqdmimport multiprocessing as mpdef pickle_process(_class, *args): return _class.proc_func(*args)class OP(): def __init__(self): self.length = 64 ...原创 2020-04-18 21:24:23 · 5208 阅读 · 2 评论 -
python多进程写同一个list/dict
python2下的写法import timefrom tqdm import tqdmimport multiprocessing as mpdef picklable_op(_class, *args): """ 多进程之间要使用pickle来序列化并传递一些数据。 由于py2下实例方法并不能像py3一样直接被pickle。 所以需要对多进程对象进行封...原创 2020-04-18 21:19:03 · 8708 阅读 · 2 评论 -
protobuf相关操作与问题
查看查看protobuf版本protoc --version查看protobuf安装路径which protocNote:虽然 pip show protobuf也可以看到protobuf的相关信息,但是所指向的可能不是同一个protobuf,通过 which protobuf可看出。问题遇到protobuf版本不对卸载原有protobufpip uninstall p...原创 2020-03-15 15:22:46 · 453 阅读 · 0 评论 -
【python】pip指定源
永久性指定源编辑 ~/.pip/pip.conf:mkdir ~/.pipvim ~/.pip/pip.conf写入如下内容:[global]trusted-host = xxxxindex-url = xxxx立即生效:source ~/.pip/pip.conf临时性指定源pip install {库名} --index='xxxx' --trusted-host=...原创 2020-03-15 15:11:56 · 423 阅读 · 0 评论 -
【tkinter】辨识键盘输入
前言在使用tkinter的时候经常会不知道某个键盘具体对应的 event.char和event.keycode是什么,上网去查找又很麻烦。Code以下是我总结的模板,专门用于辨识键盘输入:import sysif sys.version_info.major >= 3: from tkinter import *else: from Tkinter import ...原创 2020-03-15 10:55:20 · 970 阅读 · 0 评论 -
【web】python web框架比较(Django、Flask、Tornado)
前言博主之前没接触过Web开发,只是想用Python Web框架开发一个小工具。临时上网调研了一下常用的三大python web框架(Django、Flask、Tornado),记录如下:Django:大而全;Flask:短小灵活,但就是太灵活了其实对新手来说不好控制;Tornad:短小灵活,天生异步处理强。较为原始。因为我只需要开发一个小工具,所以肯定不选Django。看了一下Fl...原创 2020-03-15 09:46:03 · 1377 阅读 · 0 评论 -
【python】如何写出兼容py2与py3的代码
【python】如何写出兼容py2与py3的代码原创 2020-03-13 22:03:55 · 1228 阅读 · 1 评论 -
【python】理解 __file__
py3下,__file__返回的是文件的 绝对地址 ;而在py2下,__file__返回的是文件的 相对地址 。想在py2下获取文件的绝对地址,可以借助 os.path.abspath():import osprint(os.path.abspath(__file__))即可获取绝对地址。...原创 2020-03-13 20:27:05 · 352 阅读 · 0 评论 -
python: 读取.xlsx文件
TemplateXLSX_FIlE = "../../XX.xlsx"NUM_SHEETS = 3# 获取.xlsx文件的所有sheet列表workbook = load_workbook(XLSX_FIlE)sheets = workbook.get_sheet_names()tmp_dict = {}# 分别获取每个sheet的内容for i in range(NU...原创 2018-04-23 20:17:19 · 8990 阅读 · 0 评论 -
python: .pkl文件读写
读取PKL_PATH = '\you\path'string = ''if os.path.isfile(PKL_PATH): # pkl文件内容被一次性读入data import pickle reader = open(PKL_PATH, 'rb') data = pickle.load(reader) reader.close()...原创 2018-04-20 12:02:55 · 3131 阅读 · 0 评论 -
python: 判断tuple、list、dict是否为空
Testtuple_test = ()assert not tuple_testlist_test = []assert not list_testdict_test = {}assert not dict_testSummary根据实验结果可知,直接通过: if not xxx:即可判断 tuple、list、dict 是否 为空 。...原创 2018-04-20 12:11:52 · 32088 阅读 · 5 评论 -
python: json库 & .json文件读写
API API Annotation json.dumps( ) 将python中的 字典 转换为 字符串 json.loads( ) 将 字符串 转换为 字典 json.dump( , ) 将数据写入json文件中 json.load( ) 把文件打开,并把字符串变换为数据类型Testimport json...原创 2018-04-16 20:32:35 · 2358 阅读 · 2 评论 -
pycharm: 恢复(reset) 误删文件
昨晚写代码的时候,一不小心把某个代码文件误删了。。。赶紧上网找了一下pycharm如何恢复误删文件,结果还真有。经过操作,成功恢复了误删文件。现将方法过程记录如下:Method在Project栏中,右键单击需要恢复的文件夹,选择 Local History -> Show History : 选中需要reset到的时间节点,Revert 即可: 个人感觉,其机理就类似...原创 2018-04-16 20:42:26 · 14808 阅读 · 2 评论 -
python: .xml文件 操作
.xml我的.xml文件如下: Code通过如下代码模板,可实现对.xml文件的信息快捷读取:# 导入库文件import xml.etree.ElementTree as ET# 指定.xml文件地址ANNOTATION_PATH = &amp;amp;quot;../../annotation/image005.xml&amp;amp;quot;def main(): # 对.xml文件getroot ...原创 2018-04-16 21:27:40 · 844 阅读 · 0 评论 -
pycharm: 调用自定义库 报"Unresolved reference"
Warning有时候当我们调用自定义的库时,会发生报”Unresolved reference”警告: Solution右键单击项目目录 -> Mark Directory as -> Sources Root : 之后项目目录会呈现蓝色的底色: “Unresolved reference”警告自动消失: Note: 想取消该设置时,直接右键单击项目目...原创 2018-04-14 21:50:46 · 3269 阅读 · 0 评论 -
python: 在图片上 打印中文
我整理的代码模板:# 指定字体文件地址FONT_FILE_PATH = ...# 转换成PILsrc_img = cv2.imread(img_path)img_PIL = Image.fromarray(cv2.cvtColor(src_img, cv2.COLOR_BGR2RGB))draw = ImageDraw.Draw(img_PIL)# 配置参数text = ...原创 2018-04-14 22:39:01 · 2033 阅读 · 0 评论 -
pyqt: 使用PyQT制作视频播放器
转载自Python应用03 使用PyQT制作视频播放器:import timeimport sysfrom PyQt4 import QtGui, QtCorefrom PyQt4.phonon import Phononclass PollTimeThread(QtCore.QThread): """ This thread works as a timer....转载 2018-04-14 22:57:45 · 4877 阅读 · 0 评论 -
python: 记录耗时
模板这是我日常总结出的代码模板,用于记录某一段程序的具体耗时:# 记录起始时间start_time = time.time()# 所需计算耗时的主程序main()# 计算时间差值seconds, minutes, hours = int(time.time() - start_time), 0, 0# 可视化打印hours = seconds // 3600minut...原创 2018-04-03 14:21:22 · 6298 阅读 · 1 评论 -
python: 显示进度条
Method调用 tqdm 库:from tqdm import tqdmExampletry: from tqdm import tqdmexcept: import os os.system('sudo pip3 install tqdm') from tqdm import tqdmlst = [1, 2, 3]pbar = t...原创 2018-03-30 15:35:53 · 1404 阅读 · 0 评论 -
python: 自动安装缺失库文件
Method通过一条指令即可完成:os.system('所需指令')Note: os.system('所需指令') 还可以完成许多其他任务,非常强大。Exampletry: from tqdm import tqdmexcept: import os os.system('sudo pip3 install tqdm') from tqd...原创 2018-03-30 15:25:27 · 3511 阅读 · 0 评论 -
pycharm: 配置远程repo
配置远程repo原创 2018-03-29 13:27:28 · 2155 阅读 · 1 评论 -
pycharm: 配置远程解释器
pycharm: 配置远程解释器原创 2018-03-29 13:31:24 · 4525 阅读 · 1 评论 -
python: list型 与 np.ndarray型 切片探究
切片层级的不同今晚和同门讨论到一个之前没太注意的问题,即list型 与 np.ndarray型 的 切片层级 有什么区别?Test # coding=utf-8# list型lst = [[10, 20], [30, 40]]print(lst[:][1]) # [30, 40]try: # list型 只能进行一级切片,否则就会抛出 Ty原创 2018-01-21 22:58:38 · 551 阅读 · 0 评论 -
python: list型数据 的 索引顺序
问题写代码的时候发现一个奇怪的现象:lst = [[10, [1, 2]], [20, [3, 4]]]# 注意到 lst[1][:] 和 lst[:][1] 居然是一样的assert lst[1][:] == lst[:][1] == [20, [3, 4]]答案个人觉得,因为 list型数据 的 索引顺序 是 从左往右,所以满足以下等式:lst[1][:原创 2018-01-21 22:46:39 · 1808 阅读 · 0 评论 -
python: remove 内建函数
Syntax list.remove(obj)移除列表中某个值的 第一个 匹配项 。Args:obj: 列表中要移除的对象。Testlst = [10, 20, "Hello", 20, "Nanjing"]lst.remove(20)print(lst) # [10, 'Hello', 20, 'Nanjing']原创 2018-01-01 10:52:48 · 1921 阅读 · 0 评论 -
python: index 内建函数
Syntax list.index(obj)从列表中找出某个值 第一个 匹配项 的 索引 。Args:obj: 查找的对象。Testlst = [10, 20, "Hello", 20, "Nanjing"]idx = lst.index(20)print(idx) # 1idx = lst.index("Hi")print(idx) # ValueError: 'Hi'原创 2018-01-01 10:56:11 · 2168 阅读 · 0 评论 -
python: list 操作
普通操作# coding=utf-8a = [10, 20, 30]b = ["Hello", "Nanjing"]# 重复c = a * 3print(c) # [10, 20, 30, 10, 20, 30, 10, 20, 30]# 元素是否存在于列表中c = 20 in aprint(c) # True# 迭代c = [i for i in a]print(c)原创 2018-01-01 11:05:54 · 548 阅读 · 0 评论 -
python: max 内建函数
Syntax max(list)返回列表元素中的最大值。Test# max函数在 python3 中已经 不能 对同时含有 int 和 str 的 列表 进行求max了(python2中却可以):lst = [10, 20, "Hello", "Nanjing"]try: print(max(lst))except TypeError: pass# max函数可以 对只原创 2018-01-01 10:23:43 · 1449 阅读 · 0 评论 -
python: min 内建函数
Syntax min(list)返回列表元素中的最小值。Test# min函数在 python3 中已经 不能 对同时含有 int 和 str 的 列表 进行求min了(python2中却可以):lst = [10, 20, "Hello", "Nanjing"]try: print(min(lst))except TypeError: pass# min函数可以 对只原创 2018-01-01 10:27:13 · 1071 阅读 · 2 评论 -
python: insert 内建函数
Syntax list.insert(index, obj)将指定对象插入列表的指定位置。Args:index: 对象 obj 需要插入的索引位置。obj: 要插入列表中的对象。Testlst = [10, 20, 30]lst.insert(-1, "Hello")print(lst) # [10, 20, 'Hello', 30]原创 2018-01-01 10:44:38 · 2833 阅读 · 0 评论 -
python: help 函数
Syntax help([object])显示 帮助信息 。Test# coding=utf-8print(help('sys')) # 打印 sys 模块 帮助信息"""Help on built-in module sys:NAME sysMODULE REFERENCE https://docs.python.org/3.6/library/原创 2017-12-26 19:31:12 · 1461 阅读 · 0 评论