![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Patrick_Star_1
这个作者很懒,什么都没留下…
展开
-
git checkout 覆盖本地代码修复
假设git 有 master 和 release 两个分支,开发及本地修改在master上,如果需要使用cherry_pick等功能(不适用bash)直接checkout,如果release和本地有冲突或者没有新打开一个idea的窗口,可能导致本地修改被覆盖修复方法1.右键工程目录,选择local_history >>> show history2.选择被覆盖的部分,右键revert回退,或者根据其中的文件部分回退,修改也可以正确做法最简单也是最正确的方法是:git s原创 2021-04-08 16:34:40 · 1644 阅读 · 0 评论 -
python多进程+islice处理大文件
对于数据量较大的文件,对里面的数据执行某一种相同操作时,可以考虑多进程+islice结合,利用类似“map+reduce”的思路快速输出结果初始化进程池*args传入do_analysis的参数,传入p_id及cpu数量,为后续切片使用 cpu_n = min(os.cpu_count() - 2, 10) executor = ProcessPoolExecutor(max_workers=cpu_n) pdata = [] for i in range(cpu_n原创 2020-12-31 15:02:28 · 373 阅读 · 0 评论 -
Python常见错误之:字典在for循环中数据被覆盖
先看例子tmp_lst = []tmp_dict = {1:xx,2:xx,3:xx...}for i in range(5): for row in tmp_dict.get(i): row['count'] = i tmp_lst.append(row)最后会发现tmp_dict里的每一个元素的“count”都是4这是因为所有的row都指向了同一个内存地址,可以用id(r...原创 2019-12-12 18:00:44 · 2038 阅读 · 0 评论 -
python常见错误之:csv读取错误
以前读取csv的时候直接用了读key的方式以下是在读取字典时如果a_dict中的“a1”为空就读取字典的“a”字段a = a_dict['a1'] if a_dict['a1'] else a_dict['a'] 但是如果该字典没有“a1”或“a”,就会直接报key error,所以对于相对复杂的数据时应该用:a= a_dict.get('a1') if a_dict.get('a1')...原创 2019-11-27 14:24:28 · 919 阅读 · 0 评论 -
python常见错误之:ValueError: Invalid \escape
报错是在json转字典的时候,即 url = "%s/?GetResult&x=%s&y=%s" resp = urllib.urlopen(url).read() jsonData = json.loads(resp)在json转换时,要将 “/” 转为 “//”,即 url = "%s/?GetResult&x=%s&y=...原创 2019-11-20 14:02:17 · 4643 阅读 · 0 评论 -
Python读取csv错误
昨天改bug改了一下午,一个很简单的细节,却很容易被忽视,特记录一下。在用python读取csv数据时,如果想判断某一个字段是否有值,可以写成:reader = csv.Dicteader(inputFile)tmp_lst = []for row in reader: if row.get('xxx): tmp_list.append(row['xxx'])这样写,如果是多线程...原创 2019-10-10 16:23:44 · 392 阅读 · 0 评论 -
多文件路径中的数据汇总
昨天接到一个小任务,数据量比较大的任务要拆分后跑同一个脚本,所以结果合并人工很困难(上百个文件)。现要将文件路径内的统计文件中对应的数据求和(比如所有的第一行第一列求和),记录一下我的方法:本次任务中的被统计文件均同名(如果不同名需要同一种规则下的统计文件同名),因为格式化输出的,所以同一规则下同名也正常首先,我们要获取路径树内所有的文件和文件夹(文件夹就行了)#简单的递归,如果是文件夹就存...原创 2019-09-28 15:12:13 · 224 阅读 · 0 评论 -
PGSQL获取字典形式返回值并写入CSV
最近工作中开始使用PG库了,由于python中PG库的属性没有cursor属性设置(暂时没查到,问了大佬也说不知道),所以在字段比较多的时候不能像Mysql一样用Dictcursor直接用字典形式导出数据,所以学习了一个小方法,记录一下。#连接数据库def get_ptsql_con(): return psycopg2.connect(host='a', port=xxxx, use...原创 2019-09-27 09:30:45 · 606 阅读 · 0 评论 -
mysql事物提交
mysql向数据库中插入数据的时候尤其是大数据量,例如亿级数据,要记得使用事物提交,将数据拼接起来一次性提交多条,可以大幅提升效率。经测试2亿条数据通过pymysql插入库中差不多需要4天,而事物提交后差不多40-50min就可以完成。‘’‘遍历输入数据把每一条拼接起来,如果字段太多直接用{}.format’‘’if len(values) > 0: ...原创 2019-09-20 16:37:01 · 152 阅读 · 1 评论 -
python三个单引号
以前写注释的时候常用三个单引号,最近工作经常要写多行的sql,特别是在pymysql中如果使用单引号,转义将极其麻烦:看两个栗子pymysql单引号:'SELECT * FROM tmp_table where tmp_type in ( \'a\' , \'b\', \'c\')'当sql到几十行,里面混杂模糊查询、正则时就很麻烦了(而且单引号sql变量不好写可能会报错)所以多行sql...原创 2019-09-10 09:09:18 · 4266 阅读 · 1 评论 -
pandas dataframe细节错误
工作中碰到了两个pandas中的小bug,而且会导致连环的错误,所以记录一下1.假设一个dataframe(df)为空,则df.to_csv(tmpfile) 会报错 None of [xxx] in columns因此在输出时需要先判断df是否为空例如df = df[df['a] == 0] (假设这个查询为空 多个条件查询最好写df.a 并且用把多个条件用“()”)#判断是否为空...原创 2019-09-05 17:18:27 · 970 阅读 · 0 评论 -
python实现Rtree
简单记录R树的构建,R树可以用来做空间距离检索,相对比较高效。class PmPoi: """ POI基础数据结构 """ src_header = '' # 源数据的表头 def __init__(self): self.id = '' self.name_chn = '' self.addr_chn ...原创 2019-08-30 16:17:41 · 2219 阅读 · 2 评论