python
文章平均质量分 53
python
lwgkzl
海风和着歌声,星空伴着代码
展开
-
parser.parse_args 布尔值类型将False解析为True
记录一个大坑,遇到好多次了,一直没长记性 ==!问题当我在代码中使用parser添加一个参数的时候, 将其设置成bool类型的,然后默认值为True。parser.add_argument("--some_argument", default=True, type=bool)然而,当我在命令行中输入 --some_argument=False的时候, 代码跑出来some_argument这个参数还是True。我怀疑是自己的编码姿势不对, 换了--some_argument=false(原创 2022-03-03 15:10:57 · 1830 阅读 · 1 评论 -
【Torch】最简洁logging使用指南
网上的教程大多十分复杂,实际上使用logging非常简单, 三行代码就好了我使用logging是为了方便调试, 因为输出框缓存的数量是有限的,如果把输出打印到文件中观察使用体验会好很多,因为这三行代码的功能就是为了将输出导出到某一个文件中配置代码如下:import logginglogging.basicConfig(level=logging.INFO, filename='./mylog/test.log', filemode='w')这里首先引用了logging的包, 然后配置一原创 2020-12-08 10:35:08 · 2130 阅读 · 0 评论 -
python 如何用变量名字符串获取变量的值
通过字符串的f操作:aa = 5print(f"{aa}")bb = [1,2,3]print(f'{bb}')关于f操作的更多信息,请见https://blog.csdn.net/yizhuanlu9607/article/details/89530982原创 2020-07-30 17:33:05 · 8085 阅读 · 7 评论 -
python list中找Topk的数值和索引
需求:对于一个python list 或者numpy数组,我需要找到这个list中最大的K个数及其对应的下标。解决方式:1. 可以构造字典通过排序解决,不过代码量较多。2. 使用heapq库,可以直接获取最大值的下标和数值。import heapqa = [4,2,6,1,9,9]# 获取下标, 输出为[4, 5, 2]heapq.nlargest(3, range(len(a)), a.__getitem__)# 获取数值, 输出为[9, 9, 6]heapq.nlar原创 2020-07-21 11:14:57 · 7881 阅读 · 1 评论 -
python的正则表达式匹配如何找到所有匹配成功的部分(包括重叠的)
比如: st = “平安夜吃苹果呀小菇凉” , pattern = '((平|苹).*?果)‘我希望匹配的字符串是 "平安夜吃苹果" 以及 “苹果” 很显然后面那个是包含在前面一个字符串中的。解决方式有两种:1. ?= 原理暂时我没有弄清楚,请路过的大佬指点在这个pattern的周围加上一个?=,然后套一个分组括号。详见代码:st = "平安夜吃苹果呀小菇凉"...原创 2020-04-23 16:11:43 · 3187 阅读 · 0 评论 -
point-wise element-wise
先占个坑point-wise element-wise实际上是同一个东西,就是两个矩阵的对应位置逐点相乘,也就是说这两个矩阵的大小要是一样的。不同的人有不同的表达,还有一个Hadamard product实际上也是同一个意思。...原创 2020-04-08 20:28:05 · 3179 阅读 · 2 评论 -
python中文路径与英文路径的拼接
总述:介绍几种拼接中文路径和英文路径的常用方式,和几种坑。如果没时间看坑,直接跳到最后即可常见错误:1.通过"{}{}{}".format()来拼接path1 = "D:/中文/"path2 = "test/"def test_road(path1,path2): path = "{}{}{}".format(path1,path2,"hhh.txt") wi...原创 2018-08-31 19:18:10 · 3191 阅读 · 2 评论 -
pickle.load的时候出现EOFError: Ran out of input
原因:load的文件为空,就会出现这种错误。解决方案:1.如果是读取单个文件的话,一定要打开文件所在路径然后打开文件,查看文件是否为空。有可能之前不是空文件,但由于用pickle.load文件时需要打开文件操作,可能在这个过程中把文件内容清空了也未可知。2.如果是批量操作文件的话,可以抛出异常,这样就不会影响整个程序的运行。 with open(filename, 'r...原创 2018-11-21 11:39:36 · 72371 阅读 · 12 评论 -
简述python re模块正则的贪婪方式与非贪婪方式
贪婪方式: 默认尽量匹配更多的满足条件的字符。正则表达式默认为贪婪匹配st = "abc123abc"st = re.sub("([0-9]+)","hello",st)print(st)+代表匹配满足前面的正则字符,即在0-9之间的数字。原字符中有三个数字,这里默认匹配越多越好,所以就全部匹配了。只形成一个hello,sub函数是把正则匹配到的字符串替换成后面的字符串。...原创 2019-01-02 16:13:15 · 3047 阅读 · 0 评论 -
python csv.writerow写入文件乱码问题
总述:将数据从一个csv文件读出来,然后写入另外一个csv文件中出现乱码问题。注意点:writerow函数中需要的参数是要可迭代的,例如列表,但是不能直接写字符串,否则就会乱码。例子:在这个函数里面,我直接用的readlines读的csv文件,这样读出来每一行都是一个字符串,然后在吧这个字符串直接写入了新的csv文件中,理所当然的乱码了。import csvdef te...原创 2018-08-31 17:38:53 · 8092 阅读 · 0 评论 -
python:读写文件判断一行是否为空
总述:这篇博客提供一种方法判断一行是否为空。注意,空行不是由空格组成的行,而是只有换行符的行。做法:if line in ['\n','\r\n']: #doing something pass对于全部是空格的行: if line.strip() == "": #doing something pass即可...原创 2018-08-28 15:01:41 · 23735 阅读 · 0 评论 -
python 读写csv文件(创建,追加,覆盖)
总述:这篇博客讲述python怎样创建,读写,追加csv文件创建:利用csv包中的writer函数,如果文件不存在,会自动创建,需要注意的是,文件后缀一定要是.csv,这样才会创建csv文件这里创建好文件,将csv文件的头信息写进了文件。import csvdef create_csv(): path = "aa.csv" with open(path,'w...原创 2018-08-28 14:52:19 · 169498 阅读 · 10 评论 -
两种方法分割python多空格字符串
总述:这篇博客需要处理的问题就是:一个字符串被多个不同长度的空白分割,我需要把空格去掉,留下有用的信息形成一个列表如:"aa bbbbb ccc d" ----》['aa', 'bbbbb', 'ccc', 'd']做法:1.str.split()2.filter(None,str.split(" "))直接用str.split(" ")是不行的,他只会分割一个空格,如下...原创 2018-08-28 14:27:48 · 168959 阅读 · 3 评论 -
python:module 'pickle' has no attribute 'load'错误原因和解决方案
错误:这明显是pickle包已经安装好了,然而在调用pickle的时候发生了误会。原因:当前文件目录中有一个文件叫做pickle.py或者此文件的文件名为pickle.py,如果是这样,那么python在import的时候就会import到你自己写的这个文件。以下是python模块引用的顺序:import引用时首先判断这个module是不是built-in即内建模块,比如import ...原创 2018-11-21 12:03:28 · 9406 阅读 · 0 评论 -
UnicodeEncodeError: 'gbk' codec can't encode character '\uXXX' in position
1.如果这个错误发生在写文件的时候:记得在打开文件的时候加上编码格式:将 f = open("out.html","w")修改为f = open("out.html","w",encoding='utf-8') 2.如果这个错误发生在读文件的时候:在import之后加上这一句改变输出编码import ioimport syssys.stdout = io....原创 2018-11-21 16:23:11 · 8625 阅读 · 8 评论 -
python pickle模块TypeError: write() argument must be str, not bytes
问题:TypeError: write() argument must be str, not bytes解决方法:这是打开文件的时候报的错,报这个错说明需要用二进制形式打开文件。就是在打开方式里面加一个bwith open(file,"wb") as f: pickle.dump(data,f)即可附带python常见的打开文件的方式:文件打开的几种访问模式...原创 2018-12-03 14:45:44 · 3536 阅读 · 0 评论 -
python 中re.sub,replace(),strip()的区别
1.strip():str.strip([chars]);去除字符串前面和后面的所有设置的字符串,默认为空格 chars -- 移除字符串头尾指定的字符序列。st = " hello "st = st.strip()print(st+"end")输出:如果设置了字符序列的话,那么它会删除,字符串前后出现的所有序列中有的字符。但不会清除空格。st = "...原创 2019-01-01 23:06:51 · 20024 阅读 · 2 评论 -
Python enumerate()函数的用法
总述:介绍enumerate的用法。1.enumerate的作用enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。举个栗子:li = ["apple","pear","banana","orange","bitch"] #这是一个列表se = enumerate(li)print(se)输出一个可...原创 2019-03-22 11:03:03 · 708 阅读 · 0 评论 -
scrapy+seleinum 新手爬取微博热门话题避坑实录(19/4/12)
总述:出于某些原因要爬一爬微博的热门话题,我的需求是:热门话题+热门话题下参与讨论的用户的基本信息。接下来我会介绍三天里面我的工作以及令我印象深刻的坑,因为微博的反爬措施时时刻刻在更新着,所以代码可用度不太高,总而言之一句话:硬刚不了可以绕道而行。advice1.网站选择如果你需要获取微博的信息,新手的话最好爬移动端的微博,网址:https://m.weibo.cn/,基本上网页版...原创 2019-04-12 15:47:08 · 2120 阅读 · 0 评论 -
Python seleinum设置代理
总述:介绍seleinum在爬取的时候,如何设置代理代码:from selenium import webdriver proxy = '182.85.206.240:6553'chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--proxy-server=http://' + pro...原创 2019-04-12 16:08:06 · 1365 阅读 · 0 评论 -
解决tqdm一直往下滚动的问题
看大佬的代码,tqdm的进度条老老实实的呆在一行。偏偏自己写起来:长这个鬼样:把我要输出的信息都给覆盖了。解决方式:加上一个ncols的参数就行了,规定一下滚动条的长度,往下滚动的原因是它太长了。for i in tqdm(range(100),ncols=80) j = i*i 一般设成80就很好看了。参考:https://www.jianshu.c...原创 2019-09-19 16:02:28 · 12494 阅读 · 5 评论 -
如何获取Dataframe的行数和列数
返回列数:df.shape[1]返回行数:df.shape[0]或者:len(df)示例:import pandas as pddf = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]})print dfprint "row,col,row"print df.shape[0],df.shape[1],len(df)结果:...原创 2018-07-10 16:36:40 · 372617 阅读 · 6 评论 -
python mock 打桩抛出异常
总述:在python的LLT测试中,需要保证覆盖率,但是有一个问题就是,python代码本来就很短,一个函数可能就几行,而且工程代码为了方便定位错误,会在函数的前后包围try_except_else块,这一个块就占了几行,如果没一个函数都无法覆盖这个异常处理的块,那么覆盖率将会受到很大的影响,这篇博客演示如何用python模拟异常。做法:其实只需要知道mock有一个side_effec...原创 2018-08-20 10:36:01 · 5354 阅读 · 1 评论 -
python flask错误 raise TemplateNotFound(template) TemplateNotFound: index.html
解决方案:1.首先确保你把所有flask需要用到的拓展包都装好了。$ pip install flask$ pip install flask-login$ pip install flask-openid$ pip install flask-mail$ pip install flask-sqlalchemy$ pip install sqlalchemy-migrate...原创 2018-07-19 10:08:04 · 10563 阅读 · 0 评论 -
Python常用断言整理(总)
python unintest单元测试框架提供了一整套内置的断言方法。如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态如果异常,则当做错误来处理 注意:以上两种方式的区别如果成功,则标识该测试为成功状态常用断言:MethodChecks thatNew inassertEqual(a, b)a == b assertNotEqual(a, b)a != b assert...原创 2018-07-06 18:28:48 · 6066 阅读 · 0 评论 -
python to_csv和read_csv索引加入内容的问题
先看如下代码:path = "../test/test_sort.csv"df = pd.DataFrame([['a','a','a'],['a','a','a'],['a','a','a'],['a','a','a'],['a','a','a']])df.to_csv(path)print dfaa = pd.read_csv(path)print aa产生结果如下:可以看到,下一...原创 2018-07-06 18:12:09 · 11720 阅读 · 0 评论 -
python单元测试框架unittest案例
1.首先定义几个被测试函数:#coding=utf-8def add(a,b): return a+bdef minus(a,b): return a-bdef multi(a,b): return a*bdef divide(a,b): return float(a)/b2.定义测试类:#coding=utf-8import unittest...原创 2018-07-06 14:02:20 · 2500 阅读 · 0 评论 -
python LLT测试简介
一.LLT是啥? LLT(low level test)通常由开发人员自测,它包括单元测试(Unit Test)、集成测试(Integration Test)、模块系统测试(Module System Test)、系统集成测试(BBIT),不过一般最主要最重要的部分还是UT,即单元测试。二.LLT要做啥? LLT需要构造单元测试用例,使用打桩的方式,模拟函数不同的输入,用于验证是否能达...原创 2018-07-06 09:35:48 · 10246 阅读 · 0 评论 -
windows下安装Python库的一系列错误
1. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools这个的解决办法是手动下载需要安装的那个包,比如我需要安装的是imread,在https://...原创 2018-06-02 10:18:23 · 1806 阅读 · 0 评论 -
Parent directory of crack_capcha.model doesn't exist, can't save. (tensorflow 报错)
在保存模型的时候报的错,使用代码:saver.save(sess, "crack_capcha.model", global_step=step)解决方案:在crack_capcha.model 的前面加./,即使用代码:saver.save(sess, "./crack_capcha.model", global_step=step)问题即可解决。为什么呢?./代表代码执行的根目录,之前直接那样...原创 2018-05-18 16:48:23 · 2192 阅读 · 0 评论 -
ValueError: unconverted data remains: 解决方法
运行代码如下所示: len1 = len(input_lines) aa = input_lines[len1-1] print aa tim1 = time.strptime(aa,format)其中输出的aa = 2015-02-20 00:00:00,format = '%Y-%m-%d %H:%M:%S'.看上去似乎是没有问题的。问题处在哪里呢?1。首先要确...原创 2018-03-15 18:49:50 · 67400 阅读 · 3 评论 -
Windows下如何安装Python的库文件(以pandas)
虽然装的双系统,但是频繁切换也很不爽,所以想在Windows上也建一个Python环境,以下演示如何在Windows 下安装Python的依赖库。1.安装Python此步略过,安装依赖库的前提是有Python环境。2.用cmd进入Python的安装目录下的scripts目录(不记得安装目录了怎么办?没关系。可以打开你的环境变量设置中查看如图,找到path变量)原创 2018-01-06 10:12:20 · 10776 阅读 · 2 评论 -
pandas 缺失值与空值处理
1.相关函数df.dropna()df.fillna()df.isnull()df.isna()2.相关概念空值:在pandas中的空值是""缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可3.函数具体解释DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=...原创 2018-07-07 10:30:49 · 221028 阅读 · 6 评论 -
python 小常识整理
本文整理一些python中易混的知识点,常用的函数等,持续更新。1.range(a,b):生成一个从a到b的整数序列,不过只包含a,不包含b。2.python中的True与False,bool类其实是继承自整数类,所以True与False有相对应的整数值,其中True等于1,False等于0但是只要是正整数,都可以作为True使用。3.pandas中的0和0.0.pandas的某一列中如果有某一个...原创 2018-07-15 23:07:24 · 579 阅读 · 0 评论 -
Python WindowsError: [Error 3]及常见的windowsError错误
一.error3的常见产生原因及解决方式:1.mkdir函数连续创建几个目录。即F:/aa/本来就没有,如果需要创建F:/aa/bb,就会产生该错误,解决方式,一层一层检测,或者直接用makedirs这个函数。2.lisdir枚举了并不存在的目录。解决方式:在枚举之前判断改路径是否存在。3.在一个只读文件夹里面创建文件也会产生以上错误。4.编码问题:需要注意文件的编码格式,在py文件的第一行修改。...原创 2018-07-15 23:30:32 · 35563 阅读 · 3 评论 -
coverage 多进程下子进程覆盖问题(以multiprocess为例)
总述在网上查看了很多coverage的教程,似乎多进程就只需要加一个 --parallel-mode参数,然而经过亲自尝试,似乎并没起什么作用。我的多进程是通过multiprocess 类实现的。coverage默认是支持thread的多线程覆盖的。示例这里写一个multiprocess的例子,并说明测试方法先声明一个多进程类在进程类里面声明两个子进程,A2文件impor...原创 2018-08-20 09:12:14 · 2083 阅读 · 0 评论 -
python 读写json
一.总览:json文件常用于python web的前端和后端传输数据。即后端产生的数据存到某个json文件,前端需要用到这些数据的时候,通过js加载到界面中。python操纵json文件有四个函数。使用的时候需要import json1.dumpsdumps的作用是将python中的数据结构,如list,dict等转化为json的字符串。2.dumpdump的作用是将pytho...原创 2018-08-06 16:21:49 · 936 阅读 · 0 评论 -
Python web 部署(完整版)(pycharm+flask + nginx + gunicorn +supervisor )
1.总览pycharm:python编辑器,社区版免费使用a.flask: 一个轻量级的python做网站的框架,用来做网站b.nginx: 一个反向代理服务器,用来连接本地与互联网c.gunicorn:容器,容纳发布在云端的网站d.supervisor:进程管理工具,管理gunicorn进程我们要做的,是在服务器上搭建一个网站,在外界通过服务器ip可以访问这个网站。2...原创 2018-07-31 18:06:32 · 11969 阅读 · 1 评论 -
python py文件如何调用不同文件夹下的py文件
需要用到sys.path.append(path)命令。示例:这是我的文件夹布局aa.py:def sayHello(name): print 'hello '+nameclass classA(): def __init__(self,name): self.name = name def sayByeBye(self) :...原创 2018-07-23 09:21:00 · 51398 阅读 · 6 评论 -
如何把数据加载到python flask的模板中展示
在制作flask的小型web的时候遇到一个问题,怎样在前端展示我需要展示的数据?有一种方法是js代码加载本地json文件,然后把它转化成js数组的格式。不过查过N篇js加载本地json文件的例子,然而并没有一篇有用,原因是flask的界面进过了render_template()的映射,已经在服务器上了,不能再加载本地路径。而且根据MVC分层的话,在前端界面只应该有展示数据的功能,不应该有读取数...原创 2018-07-21 20:37:33 · 7198 阅读 · 0 评论