随笔分类 - python——编程逻辑
摘要:from c import c 与 from a.c import c 虽然都是同一个c(a加入环境变量),因为导入方式不同,模块代码会执行两次,导致得到的 c 不是同一个 对象,地址是完全不同的。 所以,单例模式,要注意统一导包方式。
阅读全文
摘要:死锁问题:如果非要用锁,就不要进行重复调用的阻塞性调用,用多线程分别调用即可。
阅读全文
摘要:bytes的hex和fromhex函数 bytes对象 hex函数:将bytes(b'\x00\x01\x02\x03\x04\x05')的值转换成hexstr('000102030405') fromhex函数:将hexstr转为:bytes 十六进制字符串转bytes 就得用这个,encode
阅读全文
摘要:锁 装饰器 from threading import Lock signal_lock = Lock() def send_signal_lock(func): def inner(*args,**kwargs): signal_lock.acquire() res = func(*args,**
阅读全文
摘要:socket 通讯类 """用于与 Socket 通讯""" import socket import logging class SocketConnectClass: """Socket 连接通讯类""" def __init__(self, server_ip, server_port, re
阅读全文
摘要:accept :连接一个客户端:连接对象, 地址 这个连接断开之前,别的连接是不受理的。如果客户端断开,会报错,因为连接突然没了。 所以,客户端会使用随机端口,但是端口会用完。因为端口不会立即释放。跟系统设置有关,一般的业务应该没有问题,自动释放,是可以接受的。 不对的 !!!:一个端口只用一次。
阅读全文
摘要:"""用于与 PLC Socket 通讯""" import socket import logging class SocketConnectClass: """Socket 连接通讯类""" def __init__(self, server_ip, server_port, try_conne
阅读全文
摘要:accept :连接一个客户端:连接对象, 地址 这个连接断开之前,别的连接是不受理的。如果客户端断开,会报错,因为连接突然没了。 所以,客户端会使用随机端口,但是端口会用完。因为端口不会立即释放。 一个端口只用一次。 所以,用 bind 固定客户端端口。服务端异常处理。每个服务分配一个端口,软件运
阅读全文
摘要:对于\xa0的处理 在用Python3处理英文文档时遇到split(' ')无法分开的空格,使用encode('utf8')编码后发现它并不是空格,而是\xa0,它其实是latin1编码字符,为了使\xa0像空格那样分开字符,可以直接调用split()即可 前端传输的参数值中有空格,结果是 lati
阅读全文
摘要:当 转义字符串 是从文件读取或爬虫等其他地方读到时,你发现转义字符失效了,不能起到原来的作用了,不相等了。因为:这不是你程序中定义的语句。 反转义:让 不生效的转义字符 生效。 def get_unicode_escape_str(self, command_str): """反转义处理""" re
阅读全文
摘要:from io import BytesIO from django.utils.encoding import escape_uri_path bytes_file = BytesIO() f.write(bytes_file) bytes_file.seek(0) file_name = "订单
阅读全文
摘要:Python之IO模块的使用 1.StringIO的使用 # 类似文件的缓冲区 from io import StringIO cache_file = StringIO() print(cache_file.write('hello world')) # 11 print(cache_file.s
阅读全文
摘要:threading.Timer 一次timer只生效一次,不会反复循环,如果实现循环触发,代码如下: import time import threading def createTimer(): t = threading.Timer(2, repeat) t.start() def repeat
阅读全文
摘要:这样可以获取到本机所有网卡的IP地址: IPs = socket.gethostbyname_ex(socket.gethostname())[-1] 如果想获取正在上网所使用的本机IP,通过route命令可以得到: Windows下用[a for a in os.popen('route prin
阅读全文
摘要:模拟键盘和复制文件 from pykeyboard import PyKeyboard import time import glob import os import shutil import threading def key_click_f1(t=1): k = PyKeyboard() w
阅读全文
摘要:os.listdir 与 glob.glob os.listdir : 获取文件夹下,文件及文件夹名称 glob.glob : 获取文件夹下,符合通配符的文件及文件夹的路径 注意:不要在末尾加 \,文件夹参数就到文件夹,不用加\,文件通配符,也不用加 \ In [18]: e = os.listdi
阅读全文
摘要:bytes 函数 描述 bytes 函数返回一个新的 bytes 对象,该对象是一个 0 ⇐ x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。 参数 如果 source 为整数,则返回一个长度为 source 的初始化数组; In [2]: bytes(10) Out
阅读全文
摘要:import threading import time def aaa(): time.sleep(2) print('aaa') a = threading.Thread(target=aaa) a.setDaemon(True) a.start() print('sleep') time.sl
阅读全文
摘要:class A: def __init__(self): self._name = 'aaa' @property def name1(self): return self._name @name1.setter def name(self,n): self._name = n a = A() a.
阅读全文
摘要:book = xlwt.Workbook(encoding='utf-8') sheet_index = book.add_sheet('首页') style = xlwt.XFStyle() # 创建一个样式对象,初始化样式 al = xlwt.Alignment() al.horz = 0x02
阅读全文