当前位置: 首页 > news >正文

运行时间比较

subprocess.run() 函数参数的含义:

  • shell_command:这是要执行的命令。它可以是一个字符串,也可以是一个包含命令和参数的列表。例如,“ls -l” 或 [“ls”, “-l”]。
  • shell=True:这是一个布尔值参数,指示是否在 shell 中执行命令。如果设置为 True,则可以使用 shell 的功能,例如管道和重定向。如果设置为 False,则命令将直接在子进程中执行,而不经过 shell。
  • capture_output=True:这是一个布尔值参数,指示是否捕获命令的输出。如果设置为 True,则 stdout 和 stderr 将被捕获并作为返回值的一部分。如果设置为 False,则 stdout 和 stderr 将不会被捕获,返回值中的这两个属性将为 None。
  • text=True:这是一个布尔值参数,指示是否以文本模式处理输入和输出。如果设置为 True,则输入和输出将被视为文本,并使用默认的本地编码进行解码。如果设置为 False,则输入和输出将被视为字节流。

该函数将执行给定的命令,并返回一个 CompletedProcess 实例,其中包含命令的执行结果。返回的实例将具有以下属性:

  • args:执行的命令及其参数。
  • returncode:命令的返回码。
  • stdout:命令的标准输出。如果 capture_output 参数为 True,则此属性将包含输出内容;否则为 None。
  • stderr:命令的标准错误输出。如果 capture_output 参数为 True,则此属性将包含错误输出内容;否则为 None。
  • 此外,run() 函数还具有其他可选参数,例如 input、timeout 和 check,用于控制命令的输入、超时和错误检查行为。但在给定的代码中,这些参数没有被使用到。

import subprocess
import time
import os
from time import time
from timeit import Timerdef command(folder_path = "/mnt/c/Users/19831/Desktop/rhino/将图片转换为结构IGS文件的GH文件/png",file_name = "999.png"):shell_command = f'find "{folder_path}" -name "{file_name}" -print'result = subprocess.run(shell_command, shell=True, capture_output=True, text=True)# print(repr(result.stdout)) # '/mnt/c/Users/19831/Desktop/rhino/将图片转换为结构IGS文件的GH文件/png/999.png\n'# 检查返回结果if result.stdout.strip():print("文件存在")else:print("文件不存在")def listdir(folder_path = "/mnt/c/Users/19831/Desktop/rhino/将图片转换为结构IGS文件的GH文件/png",file_name = "9999.png"):file = os.listdir(folder_path)if file_name in file:print("文件存在")else:print("文件不存在")        def pathexists(folder_path = "/mnt/c/Users/19831/Desktop/rhino/将图片转换为结构IGS文件的GH文件/png",file_name = "9999.png"):file_path = os.path.join(folder_path, file_name)if os.path.exists(file_path):print("文件存在")else:print("文件不存在")if __name__ == "__main__":start_time = time()command()end_time = time()execution_time = end_time - start_timeprint(f"程序执行时间: {execution_time}秒")  # 0.23725390434265137秒start_time = time()listdir()end_time = time()execution_time = end_time - start_timeprint(f"程序执行时间: {execution_time}秒")  # 0.1987314224243164秒start_time = time()pathexists()end_time = time()execution_time = end_time - start_timeprint(f"程序执行时间: {execution_time}秒") #  0.0017557144165039062秒   # t1 = Timer("command()", "from __main__ import command")# t2 = Timer("listdir()", "from __main__ import listdir")# print(t1.timeit(number=5))  # 1.405377944999941# print(t2.timeit(number=5))  # 1.2719782479999822

结论:

os.path.exists 时间少于 os.listdir 时间少于 命令行提交的command

相关文章:

  • Qt | QCalendarWidget 类(日历)
  • Qml:键盘事件
  • gpt-4o考场安排
  • Spring Cloud 框架的应用详解
  • 深入Django项目实战与最佳实践
  • npm install [Error]
  • 汉语拼音 如何 转化成粤语拼音 的
  • 轻量音乐网站程序源码,在线音乐免费听歌
  • Qt 科目一考试系统(有源码)
  • CTF网络安全大赛简单web题目:eval
  • el-upload上传图片,视频可获取视频时长。
  • c++/c语法基础【2】
  • 灵动微单片机洗衣机方案——【软硬件开发支持】
  • 安卓手机APP开发__网络连接性支持VPN
  • MySql--SQL语言
  • 时间复杂度分析经典问题——最大子序列和
  • [nginx文档翻译系列] 控制nginx
  • ES6简单总结(搭配简单的讲解和小案例)
  • exif信息对照
  • gcc介绍及安装
  • HTTP中GET与POST的区别 99%的错误认识
  • js作用域和this的理解
  • node和express搭建代理服务器(源码)
  • SQLServer插入数据
  • XML已死 ?
  • 关于springcloud Gateway中的限流
  • 记录:CentOS7.2配置LNMP环境记录
  • 将回调地狱按在地上摩擦的Promise
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 如何选择开源的机器学习框架?
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)JAVA使用POI操作excel
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (分布式缓存)Redis哨兵
  • (黑马C++)L06 重载与继承
  • (四)Controller接口控制器详解(三)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (一)VirtualBox安装增强功能
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET 使用 XPath 来读写 XML 文件
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET大文件上传知识整理
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • []FET-430SIM508 研究日志 11.3.31
  • [20150321]索引空块的问题.txt
  • [AIGC] Redis基础命令集详细介绍
  • [Android] Amazon 的 android 音视频开发文档
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)