python-opencv支持中文路径读写系列:查找涉及读写相关代码的文件

本文主要是介绍python-opencv支持中文路径读写系列:查找涉及读写相关代码的文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查找涉及python-opencv读写相关代码的文件

做这个工作的目的,主要是想将常见的cv2.imread与cv2.imwrite相关的代码批量替换成对应的cv2.imdecode与cv2.imencode以便于支持中文路径名的图像文件。

查找代码示例

import osdef search_file_code_key(file_path, import_statement, function_calls,
):with open(file_path, 'r', encoding='utf-8') as f:content_list = f.readlines()# print(f"==>> content_list: {content_list}")import_statement_index = -1for i, content in enumerate(content_list):# print(f"==>> content: {content}")# print(f"==>> import_statement: {import_statement}")# 检查是否包含import语句if import_statement in content:# print(f"Found '{import_statement}' in {file_path}")import_statement_index = ibreakif import_statement_index != -1:content_write_list = []# 如果包含import语句,检查是否包含指定的函数调用for func in function_calls:for i, content in enumerate(content_list[import_statement_index:], import_statement_index):# print(f"{file_path}\n")if func in content:# print(f"Found '{func}' in {file_path}")content_write_list.append(f"{func} {i}")if content_write_list:content_write = f"{file_path} {' '.join(content_write_list)}\n"return content_writereturn ""def search_code_key(data_path, import_statement, function_calls,txt_search_result_path
):with open(txt_search_result_path, 'w', encoding='utf-8') as f:# 判断data_path是目录还是文件if os.path.isfile(data_path):# print(f"==>> data_path is a file: {data_path}")content_write = search_file_code_key(data_path, import_statement, function_calls,)if content_write:f.write(content_write)else:# print(f"==>> data_path is a directory: {data_path}")# 遍历指定目录及其所有子目录for root, dirs, files in os.walk(data_path):# print(f"==>> files: {files}")for file in files:if file.endswith('.py'):# if file.startswith('poly'):# 构建完整的文件路径file_path = os.path.join(root, file)# print(f"==>> file_path: {file_path}")# 检查文件内容content_write = search_file_code_key(file_path, import_statement, function_calls,)if content_write:f.write(content_write)# 指定要搜索的目录/文件
data_path = "./test.py"
txt_path = "./test_code_info.txt"# 指定要检查的import语句和函数调用
import_statement = 'import cv2'
function_calls = ['cv2.imread', 'cv2.imwrite']# 调用函数
search_code_key(data_path, import_statement, function_calls, txt_path
)

需要转换的源代码文件示例

import cv2mask_file = "test.png"
binary_mask = cv2.imread(mask_file, cv2.IMREAD_GRAYSCALE)
binary_mask_1 = cv2.imread(mask_file,cv2.IMREAD_GRAYSCALE,
)cv2.imwrite("test_1.png", binary_mask)
cv2.imwrite("test_2.png",binary_mask_1,
)

查找到的相关代码结果示例

./test.py cv2.imread 3 cv2.imread 4 cv2.imwrite 9 cv2.imwrite 10

这篇关于python-opencv支持中文路径读写系列:查找涉及读写相关代码的文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091805

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

10. 文件的读写

10.1 文本文件 操作文件三大类: ofstream:写操作ifstream:读操作fstream:读写操作 打开方式解释ios::in为了读文件而打开文件ios::out为了写文件而打开文件,如果当前文件存在则清空当前文件在写入ios::app追加方式写文件ios::trunc如果文件存在先删除,在创建ios::ate打开文件之后令读写位置移至文件尾端ios::binary二进制方式

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n