当前位置: 首页 > 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

http://www.lryc.cn/news/350775.html

相关文章:

  • 【系统架构师】-案例篇(十四)数据库与分布式
  • Golang实现递归复制文件夹
  • 【漏洞复现】用友U8 CRM uploadfile 文件上传致RCE漏洞
  • 键盘盲打是练出来的
  • 构建sqli-labs学习环境与掌握SQL注入技术教程
  • 力扣HOT100 - 1143. 最长公共子序列
  • 【贪心算法题目】
  • yarn常用命令
  • nginx+nginx-http-flv-module在Linux服务器搭建
  • 多线程(八)
  • 投骰子——(随机游戏的控制)
  • 找出最长等值子数组
  • Go 切片常用操作与使用技巧
  • 2024 中青杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析
  • 开源与闭源:AI模型发展的双重路径之争
  • 微信小程序---小程序文档配置(2)
  • 15:00面试,15:08就出来了,问的问题有点变态。。。
  • 电磁兼容(EMC):去耦电容设计详解
  • 《数组逆序输出》
  • 必应崩了?
  • Elasticsearch集群和Logstash、Kibana部署
  • 网络的基础理解
  • Android Studio 与 Gradle 及插件版本兼容性
  • 【BUG】Edge|联想电脑 Bing 搜索报错“Ref A: 乱码、 Ref B:乱码、Ref C: 日期” 的解决办法
  • 深度学习小车操作手册全
  • Python实现天气数据采集
  • 05 JavaSE-- 异常、IOStream、多线程、反射、Annotation、泛型、序列化
  • c++/c语法基础【2】
  • python 庆余年2收视率数据分析与可视化
  • yolov8训练自己数据集时出现loss值为nan。