循环列表

1
2
3
import itertools

l = itertools.cycle([1,])

万 - 转换数字

1
2
if "万" in item["soldCount"]:
item["soldCount"] = int(eval(item["soldCount"].replace("万", " * 10000")))

Python 项目结构

除了utilsinit文件夹之外,还有许多其他常见的项目结构和文件夹

  1. main.pyapp.py:
    • 项目的主入口点或应用程序启动文件。
  2. models/:
    • 存放业务逻辑模型、数据库模型或数据结构定义。
  3. views/:
    • 如果是Web应用,存放视图逻辑或视图模板。
  4. controllers/controllers.py:
    • 用于MVC架构中的控制器层,处理用户输入和业务逻辑调用。
  5. services/:
    • 存放服务层代码,实现应用程序的核心业务逻辑。
  6. repositories/:
    • 数据访问层,实现与数据库或其他数据存储的交互。
  7. migrations/:
    • 存放数据库迁移脚本。
  8. tests/:
    • 存放单元测试、集成测试和其他测试代码。
  9. config/:
    • 存放配置文件和环境变量配置。
  10. scripts/:
    • 存放项目相关的脚本文件,如安装脚本、部署脚本等。
  11. static/:
    • 如果是Web应用,存放静态文件,如CSS、JavaScript和图片。
  12. templates/:
    • 如果是Web应用,存放模板文件。
  13. docs/documentation/:
    • 存放项目文档,如用户手册、开发文档等。
  14. requirements.txt:
    • 列出项目依赖的Python库。
  15. setup.py:
    • 用于项目的安装和分发。
  16. README.md:
    • 项目的说明文件,通常包含项目描述、安装指南和使用方法。
  17. .gitignore:
    • 指定Git版本控制要忽略的文件和文件夹。
  18. .env:
    • 存放环境变量配置。
  19. .pytest.initox.ini:
    • 配置测试框架。
  20. Dockerfile:
    • 定义容器化部署的Docker配置。

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
// a.js,统一目录下
const b = require('./b.js');
b.encrypt("your data"); // 调用 b.js 中的 encrypt 函数,并传入参数

b.js 需要将模块主动导出,有两种方式

1
2
3
4
5
6
7
8
// b.js
function encrypt(data) {
// 函数逻辑
}

module.exports = {
encrypt: encrypt
};
1
2
3
4
// b.js
exports.encrypt = function(data) {
// 函数逻辑
};