![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
python
annyangya
写代码写笔记,在练习中不断成长,加油!
展开
-
解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid continuation byte
困扰了很久的问题今天终于解决了!!!异步导入csv文件提示UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte原代码为: resp = requests.get(private_url).content with open(file_dir_name, "w") as fd: fd.write(resp.decode(encodin原创 2021-06-03 15:38:51 · 25549 阅读 · 6 评论 -
使用python内置的int、bin、hex、oct函数进行内置转换及注意事项
python进制转换时使用内置的int, hex, bin, oct时,要注意入参是否是字符串,以及函数入参是否必须为整数。先看一段代码:origin = 12345hex_data = hex(origin)print(hex_data) # 0x3039print(int(0x3039)) # 12345print(int(str(hex_data), 16)) # 12345print(int("0x3039", 16)) # 12345# 二进制bin_data =原创 2021-05-31 15:06:05 · 1263 阅读 · 0 评论 -
python中关于类方法,静态方法,实例方法的调用及参数传参问题
今天看到一个bug,明白了其中的原理之后对类方法,实例方法,静态方法的传参及调用有了更深刻的体会。后面自己写了一个demo,复现了这个报错,报错提示为:TypeError: fun() missing 1 required positional argument: 'value'下面是demo的代码:class Demo: def __init__(self, id: int, value: int): self.value = value self.id =原创 2021-03-19 17:18:50 · 2113 阅读 · 0 评论 -
python网络编程简单实现终端发送接收消息
Socket 网络编程写一个终端发送消息的服务器客户端。# 服务端代码import socketserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server.bind(("127.0.0.1", 8001))server.listen(5)clientSocket, clientAddress = server.accept()print("start-------")while True: data = cl原创 2021-02-23 15:39:39 · 1090 阅读 · 0 评论 -
使用pyinstaller通过python文件生成exe可执行文件
使用到的安装包为:pip install pyinstaller在对应的python文件目录下,有要执行的py脚本,以及favicon.ico文件,用作exe的图标运行命令:pyinstaller -F -i favicon.ico demo.pypyinstaller /user/ann/demo.py可执行exe文件在生成的dist目录下官方文档:https://pyinstaller.readthedocs.io/en/latest/requirements.html-F 表示生成单原创 2020-12-23 16:36:17 · 144 阅读 · 0 评论 -
使用pipenv创建python项目的虚拟环境
之前我的项目环境是使用anaconda管理,每次创建不同的虚拟环境,比较麻烦,而且都是一套的,不同项目直接实际用的包是一样的。现在发现使用pipenv管理项目环境很方便,不同项目包可以根据需求使用不同的版本。1、安装pipenv: pip install pipenv安装成功后有这样的提示:To activate this project’s virtualenv, run pipenv shell.Alternatively, run a command inside the virtualenv原创 2020-12-20 21:31:13 · 820 阅读 · 0 评论 -
在pycharm中设置isort和black格式化代码
打开pycharm的偏好设置,选择 Tools —>External Tools可以看到右侧已经我已经添加了isort和black。没有添加可以点击下面的➕号,isort和black的配置信息:isort:Arguments: -rc $FilePath$balck:Arguments: $FilePath$Program处填的是isort和black的位置,一般都在bin目录中,可以通过解析器查看python bin目录的位置。写好代码后依次执行isort和black:最后原创 2020-08-20 17:16:04 · 2085 阅读 · 0 评论 -
python:列表求差
列表格式:result1 = [("2020-01",21,12,12,23,34),("2020-02", 23,34,45,56,67),("2020-05",1,2,3,4,4)]result2 = [("2020-01",43,45,56,23,34),("2020-02", 23,12,23,34,45),("2020-05",12,21,31,41,14),("2020-06",11,21,31,14,14)]orresult1 = [("2020-01",21,12,12,23,3原创 2020-08-20 16:23:20 · 5871 阅读 · 0 评论 -
mysql:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
运行sql到一半时计算机进入睡眠状态,打开后停止pycharm重新运行,出现如下错误:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction参考:https://blog.csdn.net/qq_32447301/article/details/78688032?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-3&sp原创 2020-08-10 16:38:39 · 468 阅读 · 0 评论 -
sqlalchemy更新数据与原生sql使用case when 更新
最近有个任务,将表中的存储的首拼改为全拼,比如infos表中有name字段为中文,在name_acronym字段中存储着name的首拼即拼音的首字母,现在需要将其改为全拼。表中大概有一百多万数据,一开始用的sqlalchemy,但是速度太慢,并且没跑完可能脚本就被kill了,所以后来改为了原生sql,下面记录一下我的完成过程以及踩过的坑。生成全拼使用的是slug方法,在pypinyin库中的core.py中定义了slug函数,下面是官方的定义:def slug(hans, style=Style.NO原创 2020-08-08 11:39:11 · 2381 阅读 · 0 评论 -
模糊查询like:百分号的使用及注意事项
普通的百分号赋值使用:print("%s" % "ann")假如我们想在前面加个百分号:print("%%s" % "ann")运行后提示错误:TypeError: not all arguments converted during string formatting这是转义的错误,如果我们想显示第一个百分号,就要使用两个百分号:print("%%%s" % "ann")同理,如果我们想在首尾均加上百分号,就要写四个百分号:print("%%%s%%" % "ann")pyt原创 2020-08-06 18:28:43 · 3770 阅读 · 0 评论 -
sqlalchemy多表连接查询(左外连接)思路
做任务时有个多表连接查询,在sqlalchemy中,join表示内连接,outerjoin表示外连接,一般用左外连接比较多。因为涉及的表较多,主要是要弄清楚各个表之间的关联关系,连接的时候找对关系。https://www.cnblogs.com/shengulong/p/8385966.html参考了上面的博客后,写出了我想要的代码,这里总结一下思路。找到表之间的关联:'''根据供货商supplier_id筛选goods_id, 根据goods_id筛选doc_id, 根据doc_id筛选num和主原创 2020-07-29 15:33:17 · 6336 阅读 · 0 评论 -
数据库读取:AttributeError: ‘list‘ object has no attribute ‘id‘
在多表连接查询时,出现下列问题:[E 200702 18:42:49 web:1524] Uncaught exception POST /accountant/order (127.0.0.1) HTTPServerRequest(protocol='http', host='pfzone.senguo.cc:5555', method='POST', uri='/accountant/order', version='HTTP/1.1', remote_ip='127.0.0.1', head原创 2020-07-02 20:16:45 · 7028 阅读 · 0 评论 -
python: tuple object is not callable
错误提示:TypeError: 'tuple' object is not callable元组不可用,最终发现是在写接口api时,各接口之间忘记加上逗号分隔导致。在每个接口后面加上逗号即可。原创 2020-06-20 15:30:02 · 6784 阅读 · 0 评论 -
flask:Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)
写flask项目时遇到问题:Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)500,服务器报错,网上找了很多解决方案都不对,最后发现是代码使用session时报错。 session['uid'] = user_info.id用户登录时需要保存用户的id,加密时需要secret_key,需要在setting配置中注明,但是我没有添加,所以一直提示500错误。最后在s原创 2020-06-01 12:40:41 · 10113 阅读 · 0 评论 -
python操作redis数据库:string,list,set,hash
Mac 下安装Redis 图形化管理工具 Redis DeskTop Manager–rdm:链接:https://pan.baidu.com/s/1eFPf4mzVtdPNIJ9TgwzXKA 密码:3kceredis主要存储类型:字符串,散列,列表,集合,有序集合启动数据库:$ src/redis-server$ src/redis-cli字符串set --设置值get – 获取值mset --设置多个键值对mget --获取多个键值对append --添加字符串del --原创 2020-05-30 16:34:12 · 615 阅读 · 0 评论 -
python绘制奥运五环图
奥运五环图:使用turtle绘图,代码如下:import turtleturtle.width(10)turtle.color("blue")turtle.circle(100)turtle.penup()#画笔抬空,没有移动痕迹turtle.goto(250,0)turtle.pendown()#落笔,绘画有痕迹turtle.color("black")turtle.circle(100)turtle.penup()turtle.goto(500,0)turtle.pend原创 2020-05-26 17:11:20 · 4277 阅读 · 0 评论 -
python: 迭代器和生成器
迭代器迭代类似于循环,每一次重复的过程称为迭代,每一次迭代的结果会被用作下一次迭代的初始值。提供迭代的方法被称为迭代器for i in 'asdc': print(i)for的作用是触发这个迭代器的迭代功能,字符串是容器也是迭代器,每次从容器里依次拿出一个数据,就是迭代操作。对容器对象调用iter()方法可以得到迭代器,调用next()迭代器会返回下一个值s = 'abcd'...原创 2020-05-01 14:42:08 · 183 阅读 · 0 评论 -
python:deque的使用
标准库collections的deque,是一个双端循环队列,可以限制存储容量from random import randintfrom collections import dequehis = []his2 = deque([], 5)#限制长度为5N = randint(0,100)def guess(k): if k == N : print("猜正确...原创 2020-04-30 23:03:36 · 304 阅读 · 0 评论 -
python实现文章词频统计
Counter的使用:from random import randintfrom collections import Counterdata = [randint(0,10) for x in range(20)]print(data)c = Counter(data)print(c)result:[8, 8, 3, 4, 3, 0, 0, 9, 1, 0, 0, 2, 1,...原创 2020-04-30 20:08:44 · 960 阅读 · 0 评论 -
flask web:构建MVC框架
源码下载:项目目录:base_setting.py:是默认的设置信息,一般存放公共的,如端口号等SERVER_PORT = 5000DEBUG = FalseSQLALCHEMY_ECHO = Falselocal_setting.py:存放开发时需要的信息,如数据库,开发时debug为TrueSQLALCHEMY_DATABASE_URI = "mysql://root:roo...原创 2020-04-13 21:59:39 · 3165 阅读 · 0 评论