Python

Python
AiernsPython
学习资料
Python 的 venv(环境管理)和 pip(包管理)
https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/
Python的资料
- Python的官方文档
- https://realpython.com/
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 | # 刷新软件包目录 |
安装依赖
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 | 方式一: 直接调用 |
插件
代码格式化工具: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 | 场景1: 大量csv小文,使用pandas的read_csv方法去循环遍历读取,速度慢的令人发指 |