python
万能菜道人
博客的书写一点都不好看,有的挺乱的,我在试着优化。
展开
-
将python2初始化的字典源代码转为有序字典的代码
python2有序字典为。原创 2024-01-11 17:00:36 · 461 阅读 · 0 评论 -
wxpython如何设置window上任务栏的进度条
这里需要简单了解COM在Window上的概念,Window的构件框架,可以将一些功能模块化,能够兼容的使用其中提供的功能,只暴露出接口Class提供给我们使用。这里我首先尝试使用的是win32com的,但是目前的该功能仅仅支持ItaskbarList的基础类,功能也仅仅是支持有限的几个,删除激活任务栏而已。简单理解就是类似与一个C语言的.h文件,能够从中获取对应的接口来进行使用,而这里文件的生成就是使用微软提供的工具。这里的None与CLSID采用的继承或者组合的方式有关,一般情况下是None.原创 2023-10-30 10:07:45 · 282 阅读 · 0 评论 -
控制器接受广播信息并反馈IP的python服务,和一个window上广播搜索的服务
它发送广播消息到网络中,然后接收控制器的响应消息,并打印出收到的响应消息,包括控制器的IP地址。当一个设备发送广播消息时,它将该消息的目标MAC地址设置为广播地址,以便在以太网中传播给所有设备。总结起来,广播是一种将消息传输给网络中所有设备的通信机制,其原理是将消息发送到广播地址。不同网段的两个电脑直接连接一般无法进行广播,通常需要通过路由器进行转发或进行特殊配置来实现不同网段之间的广播通信。例如,可以配置路由器或交换机以允许特定的广播消息在不同网段之间传播,或者使用广播代理等特殊技术。原创 2023-05-24 17:29:34 · 797 阅读 · 0 评论 -
python 函数参数的默认值是一个全局变量会导致默认值不能动态变换吗
在Python中,函数参数的默认值在定义函数时会被计算并绑定到函数对象的属性上。如果默认值是一个全局变量,那么这个变量在函数定义时就会被解析,并绑定到函数对象上,此后每次调用函数时都会使用这个默认值。这意味着,如果默认值是一个全局变量,那么在函数被定义时,这个默认值就已经被固定下来,无法在函数内部动态地改变它的值。也就是说,如果你尝试在函数内部修改这个全局变量的值,它不会影响到函数默认值的值。在这个例子中,即使在修改全局变量x的值之后再次调用my_func函数,它仍然会使用最初定义时的默认值0。原创 2023-02-16 10:36:13 · 582 阅读 · 0 评论 -
window的供选数据流
注意如果是最后写A.pkl的话,结果会将这个供选数据流给清楚掉。原创 2022-08-02 14:47:20 · 124 阅读 · 0 评论 -
python 将16进制字符串转为所需的带符号数据
输入:val : ["bb","f1","f2","f3"] 实际顺序 :全部倒过来:0xf3f2f1bb代码: def num(val): ret = 0 newval = "0x{}{}{}{}".format(val[3], val[2], val[1], val[0]) binval = bin(eval(newval))[2:].zfill(32) if binval == "0": ..原创 2022-01-06 09:35:25 · 1505 阅读 · 0 评论 -
Python2与python3关于sys.argv的区别
测试代码:# -*- coding: utf-8 -*-import sysprint(sys.argv)可以看出结果打印的并不一样,这里是中文与韩文的一个混和,韩文打印都有异常,但是python2已经成了乱码。这里直接使用python3编写双击打开的程序,使用pickle进行序列化保存为pkl文件。然后编写脚本bat来调用 python2的程序,进行打开pkl文件进行处理,从而避免python2双击打开的一系列看不懂的问题。...原创 2021-12-14 09:10:23 · 671 阅读 · 0 评论 -
Python2 读取中文文件编码遇到的问题解析
代码:f = open("1.txt","r")s = f.read()查看类型:type(s)结果是str类型(byte),这里不会报错。报错情况一:s + u'XXX'str类型加上一个utf-8编码的一个字符串会出现什么问题呢?s会被隐式转化为utf-8,但是s中可能存在一些中文字符并不在utf-8的编码中,会导致报错!处理方法:s.decode("gb2312")使用gb2312先转为unicode类型再进行拼接就没有问题。报错情况二:sqli原创 2021-12-13 14:51:52 · 568 阅读 · 0 评论 -
当文件已存在时,无法创建该文件 shutil.copytree替代方案
创建函数: ''' 首先需要引入 os shutil模块 ''' def copy_dir(self, dir1, dir2): dlist = os.listdir(dir1) if not os.path.exists(dir2): os.mkdir(dir2) for f in dlist: file1 = os.path.join(dir1, f) # 源文件原创 2021-12-07 14:40:07 · 4407 阅读 · 2 评论 -
sudo python 找不到模块的问题
这里遇到了这样的一个问题。python py文件 ok!sudo python py文件 : 找不到模块解决方案:1.卸载,使用sudo pip install 进行安装。2.添加用户权限的路径到sudo路径下:步骤:分别执行:可以看出不使用sudo的python环境多了一个用户态的路径。创建一个my.pth文件到/usr/lib/python3/dist-packages(sudo的路径):里面添加用户态的路径:/home/XXX/.loca...原创 2021-11-01 16:11:07 · 1910 阅读 · 1 评论 -
xcopy的python基础实现
待完善,目前仅作为文件覆盖拷贝手段,避免可能的window下的环境缺失问题。代码:pcopy.py#!/usr/bin/python# -*- coding: UTF-8 -*-import os,shutil,sysif __name__ == "__main__": if sys.argv.__len__() >= 3: for i in sys.argv[2:]: if os.path.exists(sys.argv[1]):原创 2021-04-20 10:42:17 · 847 阅读 · 0 评论 -
python paramiko sftp PermissionError: [Errno 13] Permission denied错误分析
python代码:import paramikohostname='XXX'username='XXX'password='123456'port=22t=paramiko.Transport((hostname,int(port)))t.connect(username=username, password=password)sftp=paramiko.SFTPClient.from_transport(t)sftp.put("d:\\output.xml","/opt/output原创 2021-03-24 14:53:19 · 2463 阅读 · 0 评论 -
window下Python查看已经启动的进程名称并关闭
使用import psutil获取名称和pid:def getProlist(): for proc in psutil.process_iter(): try: # pinfo = proc.as_dict(attrs=['pid', 'name']) pinfo = proc.as_dict(attrs=['pid', 'name']) except psutil.NoSuchProcess:原创 2020-12-22 15:17:18 · 1306 阅读 · 0 评论 -
python充分利用多核的方式
python有GIL的限制,无法充分利用多CPU。怎么充分利用目前多核多线程的现状处理一些比较耗时的操作呢。方案:1、使用共享内存,多进程并发。2、使用C/C++完成其中性能较差的部分,可以使用pthread进行多线程编程。python主程序在适当的时机进行调用。这样毕竟涉及到了多语言的部分,数据的收发也有可能比较麻烦。...原创 2020-09-23 14:49:31 · 1130 阅读 · 0 评论 -
为什么python的默认参数只初始化一次
如:def foo(a=[]): a.append(3) print a调用:foo()foo()结果:[3][3, 3]原因:与C/C++肯定是有明显的不同,如果使用id(a)打印可以看出其中的a的地址没有变化,按照大家的说法,默认参数只计算一次,那么应该就是其地址只计算一次,然后调用会在该地址上继续添加数据。个人理解,有正解再更新~...原创 2020-09-15 13:52:20 · 570 阅读 · 1 评论 -
XSLT的基础学习心得
Python中读到了关于这方面的代码,很是疑惑,这里学习记录一下:etree.XSLT(EXtensible Stylesheet Language Transformations)用于提取xml文件中的信息。原创 2020-03-18 10:54:17 · 449 阅读 · 0 评论 -
Python遍历两个list所有元素的组合,使用笛卡尔积
没文化真可怕,唉,一个简简单单使用笛卡尔积的东东,让我搞了好一会还没搞好。对于将两个和多个list的元素进行全组合的使用,使用笛卡尔积就很简单,python代码更是快乐。import itertools三个。。。:...原创 2020-02-17 16:59:55 · 8219 阅读 · 1 评论 -
linux使用pyinstaller打包的可执行文件打不开,说缺少xcb
This application failed to start because it could not find or load the Qt platform plugin "xcb".Reinstalling the application may fix this problem.这里问题折腾了好久!这里的xcb指的是libqxcb.so这里文件没有找到。应该是路径问题。在命令行界面,输...原创 2018-05-24 11:20:45 · 2405 阅读 · 0 评论 -
如何直接将搭好的python环境拷贝到另外一台电脑上
这个python环境安装实在挺折腾。如果能直接拷贝就好了。但是实际不容易。下面是我在实际拷贝的方式:拷贝大法残篇:容易走火入魔~1.在另外一台电脑安装一个同版本的python。2.将自己电脑上的搭好的python替换过去!问题:1.奇怪的不是有效的32位程序:在import paramiko:import bcrypt时,bcrypt说有64位dll!处理:删除C:\Use...原创 2019-05-09 10:54:06 · 21176 阅读 · 0 评论 -
python list与deque在存储超大数组的区别
这里,python的list在数据超过开辟的内存会新开辟一个更大区域,然后将数据拷贝到新的区域进行处理。但是deque超过开辟的限制则会开辟一个区域,类似与链表连接。下面测试代码:listimport times = [0]*10000s1 = []while True: t1 = time.time() s1.extend(s) print(time....原创 2019-06-26 11:17:17 · 1324 阅读 · 0 评论 -
Python3 多进程multiprocessing 编程之共享数据使用 与注意事项
目前处理了大概几十万个数据的计算,然后再刷新数据,耗时很严重,使用起来什么卡顿,这里学习使用一下python的多进程编程。python由于有着GIL全局解释锁,多线程的实际效果并不是很明显,尤其是在计算量比较大的情况,毕竟python也不是为计算而设计的。模块这里使用的是python的多进程编程模块:multiprocessing,使用起来还是比较方便的。为了不在一核冒烟,多核围观!加油啊...原创 2019-06-27 19:15:26 · 9741 阅读 · 2 评论 -
python调用C函数返回参数为char *导致字符串被截断问题
python使用的是ctypes来调用C函数不必多说:from ctypes import *SDLL = CDLL('./dll/XXX.dll')SDLL.func1.restype = c_char_pSDLL.func1.restype = c_char_p问题:这里返回值类型为c_char_p也是没有问题的。但是我这边返回的char *却是一段二进制内存,直接返回总是...原创 2019-08-29 18:22:26 · 3710 阅读 · 0 评论 -
Python参数传递本质
目前个人理解:Python的参数传递不是值传递,也不是引用传递,实际上是指针传递(也算值传递的一种)。原创 2019-09-20 16:55:06 · 272 阅读 · 0 评论 -
python已停止工作的窗口总是弹出 Pycharm guiqwt
问题使用guiqwt时只要调用关于guiqwt的模块就会有:This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information.然后:解决方法一:参...转载 2019-04-02 10:46:59 · 3333 阅读 · 0 评论 -
wxpython TreeCtrl依据字典进行添加和更新
需求:将一个不知深度如何的字典转成wx.TreeCtrl树形图的形式。该字典会一直刷新叶子键值对的值,反馈到树形图上。处理:1.首先递归将字典中的内容显示到wx.TreeCtrl,步骤如下:创建一个根目录:root = DebugTree.AddRoot('Debug', image=0)遍历字典第一层的键,然后调用递归函数,并传入子字典和创建Tree需要的参数。:...原创 2019-02-21 14:02:42 · 1406 阅读 · 0 评论 -
SQLite3的基础学习以及Python实践读写db文件
Python集成自带的最精巧的数据库管理方案。基础命令行操作链接:https://pan.baidu.com/s/1hU1nYRSdm8K0JOeQZVMvJQ 密码:2cyq为Xmind文件。这里的命令虽然全是大写,但是sqlite3并不区分大小写,都用小写也可以。python基础操作这里写了一个将Name这一个列表进行写入db文件的操作,首先创建,添加等。 d...原创 2018-09-04 16:20:49 · 8479 阅读 · 0 评论 -
Python:def函数里面还有def,这是什么操作呢
这是Python的函数装饰器!是一种比较高级的用法,学了PYthon一段时间才发现这一个高级特性。里面有点绕,感觉本质上是一个衣服模板(装饰器),然后把它装饰到任何一个你想要装饰的人(函数)身上。例如:我想在函数开始和结束时分别打印一些信息,只需要先给函数穿上“衣服”,返回给函数,接着便可以使用:def decorate(func): def iner(num): print(...原创 2018-08-29 19:42:36 · 36034 阅读 · 3 评论 -
如何将Python调用的os.system命令的错误信息反馈回来(Window)
结论:os.system只能反馈执行是否成功的标志位,想要获取错误信息,只能使用重定向其输出结果到文件中。 os.popen方式:返回值:cmd的输出信息。本身是异步调用,返回为一个Io文件指针,读取IO才会导致同步阻塞import osf = os.popen(cmd)print(f.read())如果正确输出可以看到信息。但是有两个问题:1.正确的输出信息不是同步...原创 2018-08-08 14:00:33 · 17197 阅读 · 0 评论 -
Pyinstaller安装的Pyqt程序在window下独立运行小结
由于项目是跨平台的,所以要在不同平台下做一个绿色文件夹咯。步骤1.Pyinstaller做包这里就使用pyinstaller -F main.py进行做出一个main.exe2.将除了main.exe之外用到的一些数据库和文件夹拷贝到同一个文件夹下3.将plugins文件夹拷贝到该文件夹下,主要是使用plugins下platforms文件夹,其他可以删除。问题与解决1.OSError: [WinE...原创 2018-06-07 17:09:14 · 407 阅读 · 0 评论 -
Pyqt代码触发QTreeWidget的列表中某个item点击信号
self.tree.clicked.connect(function())在实际使用中,除了手动去点击触发function(),有时还需要进行代码触发。处理方法一:1.代码将光标定位到要触发item的位置2.执行function()伪代码如下:第一步:self.tree.setCurrentItem(self.tree.topLevelItem(0)):这个能够定位到该t...原创 2018-06-05 09:56:28 · 10151 阅读 · 2 评论 -
python学习笔记之四:list的高级操作
经过初步学习,发现python对list,字典等的自带操作函数异常丰富,看的我是眼花缭乱啊,下面就介绍一下这次高端操作!切片,是对列表字符串等等进行裁切获取的方法. 切片怎么实现呢?#切片L = [1,2,3,4,5,6,7,8,9]print(L[3]) #普通操作print(L[1:3]) #取大于等于1小于3的值print(L[1:-1]) #取第一个倒第第二个pr...原创 2018-03-28 17:27:27 · 456 阅读 · 0 评论 -
python函数参数中令人看不懂的*,**表示什么?
一言概之,*主要使用在函数参数中,在定义函数中添加是为了在调用该函数时直接将多个参数转换成一个元组,而在调用函数时参数添加*,是为了将列表/元组转化成多个参数。**也主要使用在函数参数中,在定义函数中添加是为了在调用该函数时可以添加任意个键值对转出一个字典,而在调用函数时在列表中添加**,是为了将字典转化成多个参数。如例子:def func1(*a): print(a) def...原创 2018-03-26 18:55:36 · 7276 阅读 · 2 评论 -
Python3的基础数据类型小结
Python是一种动态语言,与C/C++很是不同。从数据的定义到编程调试思路都有很大的不同,本人从C/C++入门编程,在了解Python中与C/C++相交互。基础数据结构: 与C++语言相同,最基础的都是int,float,string,bool类型。python特殊的是在不需要定义声明类型。例如:a = 1a = "123qsx"a = 1.0001 直接定义,...原创 2018-03-22 10:16:31 · 192 阅读 · 0 评论 -
Python3学习笔记(二):编码为什么python2升级到python3时就遇到需要再加.encode()
在一次使用python2升级到python3时就遇到需要再加.encode()的事情,当时并不了解是为什么要加encode,今天就来好好了解一下Python十分重要的编码。 在python2.x 中是不区分bytes和str类型的,在python3中bytes和str中是区分开的,str的所有操作bytes都支持。 也许就是我遇到的这这个问问题的答案,那么什么bytes,什么s...原创 2018-03-26 11:04:07 · 476 阅读 · 0 评论 -
python学习笔记之五:函数初体验
使用python编程不可能只停留在一行一行输入的感觉。python感觉使用C/C++的思路是很好理解的。函数就是面向过程的主要部分,而python的函数怎么使用呢?函数def add(x,y): return x+ya = add(1,2)b = add("1","2")print(a,b) 结果是3,"12"。这就是普通的python函数,由于其变量的灵活性,C++的重载直...原创 2018-04-08 10:22:59 · 295 阅读 · 1 评论 -
Python的字符串操作【持续更新】
Python的字符串操作每每使用都让我舒畅不已,真的人生苦短我用Python啊!但是也有许多字符串操作功能Python并没有提供直接的方法让我们使用,只能在进行封装函数来使用,我将从最简单的字符串方法介绍,既可以作为学习资料,在使用的使用也可以愉快地过来复制咯。赋值标准脚本化赋值。name = "Siri"访问访问查看字符串某些位置的变量,可以使用类似于C的数组下标的方式...原创 2018-09-04 16:55:26 · 322 阅读 · 0 评论 -
Pyqt清空某一个QTreeewidgetItem下的所有分支
1.循环删除 #这个是我选中其中的一个分支进行右键清空操作时进行的处理for i in range(self.tree.currentItem().childCount()): self.tree.currentItem().removeChild(self.tree.currentItem().child(0))如上,采用循环删除某一个分支的方法进行处理。...原创 2018-09-11 11:54:37 · 1533 阅读 · 1 评论 -
Pyqt编写程序文件关联功能(双击打开连接到程序的Open函数)
PyQt程序进行文件关联需要的步骤不是很多,但是有许多坑。这里介绍一种比较通用的,实际上可行的方案。主要有添加外部参数获取,测试,编写通用脚本,安装包制作四个步骤,完成一个双击项目专属文件就可以自动打开程序的功能。1.添加外部参数获取创建一个简单的Pyqt的文件编辑器项目,不再讲述。myapp = QApplication(sys.argv)mainwindow=MainWin...原创 2018-11-26 10:50:48 · 1621 阅读 · 0 评论 -
python os.system某些命令会跳出终端(控制台)处理
推荐使用subprocess,不会跳出window的黑色窗口即:import subprocessret = subprocess.call("cmd",shell=True) 再次使用到会进行添加新的subprocess的使用方式。原创 2018-11-23 10:45:28 · 6081 阅读 · 0 评论 -
Python使用正则表达式获取特定数字等位置与其他的一些用法
记录一下操作步骤,懒得翻代码,复制使用。1.获取字符串中首个数字的开始结束位置。例如:asd2312ssa213sdaimport recontent =content.replace(" ","")model = re.compile("[0-9]+")if model.search(content) is not None: pos = model.search(co......原创 2018-11-01 10:34:36 · 11037 阅读 · 0 评论