改进 Python 脚本代码的多个有用技巧


辅助宝
辅助宝 2023-11-27 11:13:37 67928
分类专栏: 资讯

Python 代码的可读性

我们编写的脚本代码,自己不是唯一一个使用它们的人。如果你为别人编写代码,你要考虑以后代码的维护。换句话说,你的代码必须有很好的注释、可读性,并且任何查看你的代码的人都能理解。

合理的注释通常会解释代码的含义,帮助您记住编写代码时的思维过程。

import cv2
import glob

'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
 
# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
 
# 循环访问文件,将其设置为灰度
for i in image_files:
   img = cv2.imread(i)  # 读取图像
   gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
   gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小以进行可视化
   cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
   cv2.waitKey(0) # 按任意键关闭窗口
   
cv2.destroyAllWindows() # 关闭所有窗口

编写可重用的函数

如果你能将代码写成函数,使你的代码可重用,你将为自己省下很多时间。与其直接在文件中编写代码,不如尝试将它们封装在函数中。

让我们编写一个函数,将图像文件作为参数,并返回灰色图像。

import cv2
import glob
'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
def color2gray(filename):
    img = cv2.imread(filename)   # 读取图像
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
    gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小
    cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
    cv2.waitKey(0) # 按任意键关闭窗口
    return gray_img

# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
# 循环访问文件,将其设置为灰度
for i in image_files:
    color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口

编写自己的模块

前面已经通过函数来使代码可重用,现在,可以将这些函数单独存储在一个 Python 文件中。可以像导入第三方库那样导入此文件,并在需要时调用函数。

让我们将之前的函数放在一个名为“my.py”的 Python 文件中,使用 import 导入。

# my.py 文件
import cv2
def color2gray(filename):
    img = cv2.imread(filename)   # 读取图像
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度
    gray_img_small = cv2.resize(gray_img, (800, 450)) # 调整图像大小
    cv2.imshow('Gray Image', gray_img_small) # 在名为“Gray Image”的窗口中显示灰色图像
    cv2.waitKey(0) # 按任意键关闭窗口
    return gray_img
import cv2
import glob
import my

'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''

# 按升序加载图像
image_files = sorted(glob.glob("*.jpg"))
# 循环访问文件,将其设置为灰度
for i in image_files:
    my.color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口

使用命令行参数

如果想最大限度实现代码可重用。可以使用 sys 模块,它使我们能够使用一些变量和函数在任何平台上与 Python 解释器进行交互。为 Python 脚本文件传递命令行参数的方法之一是使用 sys.argv,它是在执行期间传递的所有参数的列表。让我们能够使用命令行参数执行 Python 代码文件,省去修改代码的麻烦。

port sys
import cv2
import glob
import my

'''转换为灰度可使图像处理速度更快。
当颜色不是重要特征时,它有助于机器学习模型。
'''
# 获取参数
arguments = sys.argv
# 按升序加载图像
image_files = sorted(glob.glob(arguments[1]+"*."+arguments[2]))
# 循环访问文件,将其设置为灰度
for i in image_files:
    my.color2gray(i)
cv2.destroyAllWindows() # 关闭所有窗口

我们可以按如下方式运行,在系统命令行中我们的脚本文件:

python test.py c:\ jpg

通过将路径(c:\)和文件类型(jpg)作为参数传递,不必每次都修改代码。

遵循 PEP8 约定

PEP 8 是 Python 官方的代码风格规范,由 Python 社区维护。它为编写干净、可读且一致的 Python 代码提供了指南和约定。遵循 PEP 8 代码风格规范,有助于提高代码质量,并使开发人员更容易在项目上进行协作。

 

原文来源微信公众号:信息科技云课堂

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=28997
赞同 0
评论 0 条
辅助宝L0
粉丝 0 发表 6 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1487
银河麒麟打印带有图像的文档时出错  1405
银河麒麟添加打印机时,出现“server-error-internal-error”  1194
统信操作系统各版本介绍  1116
统信桌面专业版【如何查询系统安装时间】  1114
统信桌面专业版【全盘安装UOS系统】介绍  1068
麒麟系统也能完整体验微信啦!  1026
统信【启动盘制作工具】使用介绍  672
统信桌面专业版【一个U盘做多个系统启动盘】的方法  616
信刻全自动档案蓝光光盘检测一体机  526
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!