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

云课堂学Python 2024-04-03 18:17:01

在本文中,我将为您提供一些 Python 编程的相关技巧以及示例,以帮助您改进 Python 代码。

Python 代码的可读性

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

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

import cv2import 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 cv2import 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 cv2def 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_imgimport cv2import globimport my'''转换为灰度可使图像处理速度更快。当颜色不是重要特征时,它有助于机器学习模型。'''# 按升序加载图像image_files = sorted(glob.glob("*.jpg"))# 循环访问文件,将其设置为灰度for i in image_files: my.color2gray(i)cv2.destroyAllWindows() # 关闭所有窗口使用命令行参数

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

port sysimport cv2import globimport 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 代码风格规范,有助于提高代码质量,并使开发人员更容易在项目上进行协作。

具体细节请参考前面的文章《》。

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。

0 阅读:0