Python基础
LLOJVQE
勤奋
展开
-
pywintypes.com_error: (-2147221008, ‘CoInitialize has not been called.‘, None, None)
在使用xlwings多线程时,出现这样的报错,导致Excel表无法打开,是多线程调用的问题。解决方法:import pythoncom# 在这个线程的函数开始运行之前调用这句即可def daily_report(): pythoncom.CoInitialize() # 加入这句 app = xw.App(visible=True, add_book=False) app.display_alerts = False app.screen_updating = T原创 2021-12-20 10:30:28 · 1648 阅读 · 2 评论 -
python re.finditer匹配不到一些符号
使用re.finditer时,会有一些比如*这样的符号搜索不到结果,这是因为pattern里的字符是不可搜索的,比如 *、$、^。有关re.finditer的详细内容可以看菜鸟教程原创 2021-12-18 10:20:56 · 1024 阅读 · 0 评论 -
python zipfile打包文件夹
如果我们直接使用文件夹的绝对路径作为target,我们最后打包的是一个空的文件夹,因此我们需要使用os.walk,在write时再附上文件夹层级即可import os,zipfilezipname = 'filename.zip'print('已将日志数据打包为'+zipname)with zipfile.ZipFile(zipname, 'w', zipfile.ZIP_STORED) as f: for i in os.walk('contents'): for n in i原创 2021-12-15 13:05:24 · 1270 阅读 · 1 评论 -
collections.defaultdict()将键-值对序列转换为列表字典
当我们通过键访问字典,如果键不存在将会返回KeyError错误,如何避免这种错误?需要使用collections.defaultdict()。它重写了方法_missing_(key),增加了一个可写的实例变量default_factory,实例变量default_factory被missing()方法使用,如果该变量存在,则用以初始化构造器,如果没有,则为None。其它的功能和dict一样。第一个参数为default_factory属性提供初始值,默认为None;其余参数包括关键字参数(keyword原创 2021-12-08 18:01:06 · 337 阅读 · 0 评论 -
python字符串中所有符合条件的索引
使用re库中的finditerimport res = '1111ah11111ah'test = re.finditer('ah',s)print([i for i in test])# [<re.Match object; span=(4, 6), match='ah'>,<re.Match object; span=(11, 13), match='ah'>]i.span()就可以直接获得索引原创 2021-11-29 17:00:38 · 336 阅读 · 0 评论 -
python将终端的错误提示打印输出到txt文件
在脚本的开头加入下面的代码,可以将错误输出重定向至errorlog文本中__stderr__ = sys.stderr #将当前默认的错误输出结果保存为__stderr__# __stdout__ = sys.stdout 标准输出就用这行# sys.stdout = open('log.txt', 'a')sys.stderr = open('errorlog.txt', 'a') #将后续的报错信息写入对应的文件中如果用try;except就不会输出原创 2021-11-22 10:54:42 · 3057 阅读 · 0 评论 -
wxpython多线程,可解决进度条在程序后台运行时不动的情况
在前面先定义myThread类import threadingclass myThread(threading.Thread): def __init__(self, command): threading.Thread.__init__(self) self.cmd = command def run(self): print"Starting" + self.cmd os.system(self.cmd)原创 2021-11-15 13:44:15 · 301 阅读 · 0 评论 -
xlwings时间格式单元格更改数据
需求:每天把当天日期的九点钟放到单元格里首先time.localtime获取当天日期import timelocaltime = time.localtime(time.time())然后用datetime把格式转变一下填入单元格,这样单元格的显示格式也不会变,如果原先是年月日还是会显示年月日的格式sht.range('L30').value = datetime.datetime(localtime.tm_year, localtime.tm_mon, localtime.tm_mday,9原创 2021-10-26 12:36:56 · 1251 阅读 · 0 评论 -
Python 中的super()
如果有一个子类继承了父类,在子类中定义了一个与父类同名的方法会覆盖父类中的方法,使用super()函数可以实现保留父类方法的功能,或者在其基础上再添加功能。举例:# 父类class animal(object): def __init__(self,name): print('I\'m ' + name)# 子类 class cat(animal): def __init__(self,name): super().__init__(name原创 2021-10-12 12:43:08 · 43 阅读 · 0 评论 -
python中if __name__ == ‘__main__‘:的用处
如果刚刚接触Python,一定会疑惑经常见到if __name__ == '__main__':这样的一行代码。这行代码的用处其实是判断用户是否在直接运行此模块(也就是这个py文件)有时我们会在最后对模块进行测试,同时这个模块也可能会被其他模块import调用。那么这时候这行代码就很必要。__name__变量有两种值:1.当py文件被直接运行,__name__变量的值为__main__2.当py文件被其他模块调用时,__name__值为这个py文件的名字因此用这行代码可以控制 被调用时/直原创 2021-10-05 13:15:59 · 69 阅读 · 0 评论 -
Mac利用selenium + sleepwatcher/launchctl实现网站签到自动化
目录前言计划路线优劣对比代码python实现自动签到功能shell脚本文件方案一:selenium+launchctl方案二:selenium+sleepwatcher前言做这个小功能的起因有些凡尔赛。因为最近家里换了新电视,为了能获得最好的观影体验,需要下载许多动辄几十G的4k电影,而让我花钱冲会员或者买蓝光盘自然是不可能的,我就找到了免费的资源网站,需要签到用积分购买电影资源(当然也可以充钱)可是每天手动签到很麻烦,又可能经常忘,就想自己搞一个脚本自动化签到计划路线我最初的方案是,使用pyth原创 2021-01-12 14:34:47 · 1188 阅读 · 1 评论 -
Python 逻辑判断的短路机制
在python中,我们经常会用到类似&,|, and, or的逻辑判断符号。那么 and, or 和 &, |有什么区别呢?目前我所知主要有以下两点:1. 位运算当运算符两边是数值变量时,例如 a=1, b=2使用 &, | 时,进行位运算,a视为01, b视为10a & b = 0a | b = 3使用and, or,判断变量是否为0,如都为非0,and返回靠后的数,or返回靠前的数a and b = 2a or b = 10 and 1 =原创 2020-12-15 19:18:42 · 992 阅读 · 2 评论 -
python next函数
next() 可以返回迭代器的下一个值,在有些时候可以让代码更优雅。比如要返回列表中第一个大于5的数字,如果没有则返回0a = [1,3,6]next((i for i in a if i > 5),0)# output: 6a = [1,3,4]next((i for i in a if i > 5),0)# output: 0next() 第二个参数是设置,在没有下一个元素时返回该默认值。...原创 2020-11-29 22:07:21 · 313 阅读 · 0 评论 -
Python字典如何一次删除多对键值
一般方法x = {'a':'1','b':'2','c':'3'}[x.pop(i) for i in ['a','b']]>>> x{‘c’: ‘3’}简单操作x = {'a':'1','b':'2','c':'3'}del x['a'],x['b']>>> x{‘c’: ‘3’}原创 2020-10-16 17:41:24 · 3866 阅读 · 0 评论 -
sklearn 文本特征提取 CountVectorizer基础使用
Python 机器学习文本处理中会需要统计词频,预处理删除一些无用词汇,所以CountVectorizer还是经常会使用的。class sklearn.feature_extraction.text.CountVectorizer(*, input=‘content’, encoding=‘utf-8’, decode_error=‘strict’, strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, stop_w原创 2020-08-24 12:32:01 · 1262 阅读 · 0 评论 -
python 将list中的str批量转化为int (链表推导和map效率对比)
给定list a = ['1', '2', '3', '4']将元素由str转为int输出:a = [1, 2, 3, 4]方法一:列表推导a = [int(i) for i in a]方法二:运用map()a = list(map(int,a))在列表a长度很小的时候两种方法效率相差无几。但当长度增加,map()的速度会比列表推导快一倍左右from timeit import Timerpre_statement = 'a = range(100000)'iter_statemen原创 2020-08-16 01:09:42 · 2885 阅读 · 0 评论