循环列表
1 2 3
| import itertools
l = itertools.cycle([1,])
|
万 - 转换数字
1 2
| if "万" in item["soldCount"]: item["soldCount"] = int(eval(item["soldCount"].replace("万", " * 10000")))
|
Python 项目结构
除了utils
和init
文件夹之外,还有许多其他常见的项目结构和文件夹
main.py
或 app.py
:
models/
:
views/
:
controllers/
或 controllers.py
:
- 用于MVC架构中的控制器层,处理用户输入和业务逻辑调用。
services/
:
repositories/
:
migrations/
:
tests/
:
config/
:
scripts/
:
static/
:
- 如果是Web应用,存放静态文件,如CSS、JavaScript和图片。
templates/
:
docs/
或 documentation/
:
requirements.txt
:
setup.py
:
README.md
:
- 项目的说明文件,通常包含项目描述、安装指南和使用方法。
.gitignore
:
.env
:
.pytest.ini
或 tox.ini
:
Dockerfile
:
ddddocr的使用
目标检测
1 2 3 4 5
| ocr = ddddocr.DdddOcr(det=True, show_ad=False) image_file = "big.png" with open(image_file, "rb") as f: image = f.read() poses = ocr.detection(image)
|
画框
1 2 3 4 5
| im = cv2.imread(image_file) for box in poses: x1, y1, x2, y2 = box im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2) cv2.imwrite("result_" + image_file, im)
|
裁剪
1 2 3 4
| img = Image.open("big.png") for num, box in enumerate(poses): cap = img.crop(box) cap.save(f"{num}.png")
|
识别
1 2 3 4
| ocr = ddddocr.DdddOcr(show_ad=False) for num in range(5): _bytes = open(f"{num}.png", "rb").read() result = ocr.classification(_bytes)
|
选出长度较短的列表
1
| min_lst = min(ori_lst, des_lst, key=len)
|
js文件导入模块
1 2 3
| const b = require('./b.js'); b.encrypt("your data");
|
b.js
需要将模块主动导出,有两种方式
1 2 3 4 5 6 7 8
| function encrypt(data) { }
module.exports = { encrypt: encrypt };
|
1 2 3 4
| exports.encrypt = function(data) { };
|