1. 查找文件
在指定目录中,根据文件前缀查找文件。
1 | import glob |
2. 删除目录和文件
封装几个简单函数,删除目录和文件。
1 | import os |
3. url特殊字符转义
1 | from urllib import parse |
特殊字符对应url编码表:
1 | 空格 : %20 |
4. 装饰器
实现一个装饰器,功能:只要函数里传了name参数,且name参数的值为haojin,那么就把这个值替换为voidking。
1 | from functools import wraps |
5. Python镜像选择
我们可能倾向于选择一个小镜像Alpine,但是这会导致更长的构建时间和模糊的错误,因此不建议。
推荐的镜像:
- ubuntu:18.04
- ubuntu:20.04
- python:3.7.10-slim-buster (基于Debian buster)
Ubuntu/Debian的默认软件安装源都比较慢,因此最好先替换成国内软件安装源,详情参考《Ubuntu/Debian替换软件安装源》。
Debian buster软件包查找地址为Debian - buster版面列表,找到软件包后使用apt install安装即可,例如安装mysql client
1 | apt install default-libmysqlclient-dev |
参考文档:适用于您的 Python 应用程序的最佳 Docker 基础镜像
6. 启动python web服务器
使用sz传输大文件,有时候会被中断。这时我们可以启动一个web服务,把大文件作为静态资源下载。
1 | python -m SimpleHTTPServer 9999 |
然后浏览器输入ip:port,即可下载文件。
7. py编译为pyc
1、批量编译整个项目
1 | python -m compileall project_dir |
2、移动位置和重命名
编译后的 pyc 文件,放在 __pycache__
目录中,需要移动到上一层目录。
编译后的 pyc 文件名中,会带着解释器的版本(例如 cpython-37),会导致找不到模块,因此需要将所有 pyc 文件重命名。
1 | find project_dir -type d -name "__pycache__" -exec sh -c 'mv "$0"/* "$(dirname "$0")"' {} \; |
3、删除py文件
1 | find project_dir -name "*.py" | xargs rm -fv |
4、启动项目
假设原启动命令为 python main.py ,那么编译后的启动命令为
1 | python main.pyc |
8. pyc反编译py
1 | pip install uncompyle6 |
9. py文件加密
1 | pip install pyarmor |
参考文档: