Python

Python

学习资料

Python 的 venv(环境管理)和 pip(包管理)
https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/

Python的资料

Python 项目结构
https://docs.python-guide.org/writing/structure/

Python常用的一些包:
内置的:json、io、os、itertools、xml
第三方的:requests(http客户端)、click(命令行程序)、openpyxl(excel)、pandas/numpy(数据分析)、re(正则)、Pyllow(图像)

Docker 上手,重点可看看exec run pull
https://www.docker.com/get-started/

实战风格的深度学习课程
https://course.fast.ai/

python安装

​ 检查系统应用,更新到最新

1
2
3
4
5
6
# 刷新软件包目录
sudo apt update
# 列出当前可用的更新
sudo apt list --upgradable
# 如上一步提示有可以更新的项目,则执行更新
sudo apt upgrade

​ 安装依赖

​ GCC编译器 sudo apt install gcc

​ 安装其他依赖

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev libncurses-dev libnspr4-dev

​ 提示找不到 –> 在software & 修改镜像源

​ 导入PPA –> deadsnakes团队维护了launchpad PPA 帮助ubuntu用户安装最新版本的python和附加模块

sudo add-apt-repository ppa:deadsnakes/ppa

Sudo apt list --installed

sudo apt install python3.9

​ 如果已经安装了其他版本的python

​ 将默认配置改为python3.9

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 200

​ 取消原来的默认python3的版本 改成python3.9

sudo mv /usr/bin/python3 /usr/bin/python3-old

sudo ln -s /usr/bin/python3.9 /usr/bin/python3

项目结构

my_project/

├── src/ # 存放源代码文件

├── tests/ # 存放单元测试文件

├── data/ # 存放数据文件

├── docs/ # 存放项目描述文件

├── config/ # 存放配置文件

├── README.md # 描述项目

└── requirements.txt # 描述依赖

VSCode中使用Python进行远端开发

​ 安装VSCODE

​ 在VSCODE中安装Remote Development

​ 在VSCODe中安装PYTHON

​ Ctrl + Shift + P 输入 python: select interpreter , 选择Python环境

​ 创建文件夹 –> 创建python文件 –> 运行即可

基础语法的使用

直接调用main方法与通过__ name __间接调用main()方法的区别

区别在于其他模块需要调用该模块时,如果该模块是直接调用main方法,那么其他模块在调用该模块时会自动执行main方法,而通过__ name __ 间接调用main方法则在其他模块调用时不会实现.

1
2
3
4
5
6
7
8
方式一: 直接调用
"代码块"

方式二: 间接调用
def main()
"代码块"
if __name__ == "__main__":
main()

插件

代码格式化工具:BlackFormatter的使用

​ VSCode中安装扩展工具BlackFormatter

​ 在py文件中右键选择Format Document

导入格式化工具:ISORT的使用

爬虫

针对反爬虫的解决方案

​ 1.request里设置header传入(一般采用这种方式,需要在header中配置cookie和user-agent,其中cookie和user-agent需要对应上,在浏览器开发者工具可以查看)

​ 2.request里设置cookies传入

​ 3.使用selenium模拟客户端访问(重操作,需要访问)

测试

Python中使用断点测试

​ alt+F5 进入python_debugger模式

step into / step out / step over 区别在于对子函数的debug方式不同

step into 单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);

step out 当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。

step over 在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。

Python中使用单元测试

ctrl + shift + P 搜test

cd /code/test

pytest -vs 输出更详细信息

Pytest

@pytest.fixture的作用

该注释下的def方法是数据的准备阶段,在测试之前运行

常见优化

Python解决小文件问题

1
2
场景1: 大量csv小文,使用pandas的read_csv方法去循环遍历读取,速度慢的令人发指
优化思路:https://blog.csdn.net/yaogepila/article/details/129443026