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

开源 python 应用 开发(四)python文件和系统综合应用

最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。

 链接:

开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-CSDN博客

开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-CSDN博客

开源 python 应用 开发(三)python语法介绍-CSDN博客

开源 python 应用 开发(四)python文件和系统综合应用-CSDN博客

 推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节内容如下:python的文件操作的综合实例,系统处理的综合实例

一、文件操作的综合实例

1.1  综合代码,实现 创建文本文件,打开文件,写入文件,读出文件,关闭文件的功能。

def create_file(filename):"""创建新文件"""try:with open(filename, 'w') as f:print(f"文件 {filename} 创建成功!")except IOError as e:print(f"创建文件时出错: {e}")def write_to_file(filename, content):"""向文件写入内容"""try:with open(filename, 'w') as f:  # 'w'模式会覆盖原有内容f.write(content)print("内容写入成功!")except IOError as e:print(f"写入文件时出错: {e}")def append_to_file(filename, content):"""向文件追加内容"""try:with open(filename, 'a') as f:  # 'a'模式会追加内容f.write(content)print("内容追加成功!")except IOError as e:print(f"追加内容时出错: {e}")def read_file(filename):"""读取文件内容"""try:with open(filename, 'r') as f:content = f.read()print("文件内容:")print(content)return contentexcept IOError as e:print(f"读取文件时出错: {e}")return Nonedef file_operations_example():"""文件操作示例"""filename = "example.txt"# 创建文件create_file(filename)# 写入内容write_to_file(filename, "这是第一行文本。\n")# 追加内容append_to_file(filename, "这是追加的第二行文本。\n")# 读取内容content = read_file(filename)# 再次追加内容append_to_file(filename, "这是追加的第三行文本。\n")# 再次读取内容read_file(filename)if __name__ == "__main__":file_operations_example()

1.2  运行结果

二、系统操作的综合实例

2.1  综合代码,通过菜单实现了常见的系统操作功能,包括文件/目录操作、环境变量管理和系统命令执行等:

import os
import shutil
import subprocess
import sysdef get_current_directory():"""获取当前工作目录"""return os.getcwd()def change_directory(path):"""改变当前工作目录"""try:os.chdir(path)print(f"当前工作目录已更改为: {os.getcwd()}")except FileNotFoundError:print(f"目录不存在: {path}")except PermissionError:print(f"没有权限访问目录: {path}")def list_directory_contents(path='.'):"""列出目录内容"""try:print(f"目录 {path} 中的内容:")for item in os.listdir(path):print(f"  {item}")except FileNotFoundError:print(f"目录不存在: {path}")except PermissionError:print(f"没有权限访问目录: {path}")def create_directory(path):"""创建新目录"""try:os.makedirs(path, exist_ok=True)print(f"目录已创建: {path}")except PermissionError:print(f"没有权限创建目录: {path}")def remove_directory(path):"""删除目录(包括非空目录)"""try:shutil.rmtree(path)print(f"目录已删除: {path}")except FileNotFoundError:print(f"目录不存在: {path}")except PermissionError:print(f"没有权限删除目录: {path}")def delete_file(filepath):"""删除文件"""try:os.remove(filepath)print(f"文件已删除: {filepath}")except FileNotFoundError:print(f"文件不存在: {filepath}")except PermissionError:print(f"没有权限删除文件: {filepath}")except IsADirectoryError:print(f"路径是目录而不是文件: {filepath}")def rename_file_or_dir(old_path, new_path):"""重命名文件或目录"""try:os.rename(old_path, new_path)print(f"已将 {old_path} 重命名为 {new_path}")except FileNotFoundError:print(f"源路径不存在: {old_path}")except PermissionError:print(f"没有权限重命名: {old_path} -> {new_path}")def get_environment_variable(var_name):"""获取环境变量"""value = os.getenv(var_name)if value is not None:print(f"环境变量 {var_name} = {value}")else:print(f"环境变量 {var_name} 未设置")return valuedef execute_system_command(command):"""执行系统命令并获取输出"""try:print(f"执行命令: {command}")result = subprocess.run(command, shell=True, check=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE,text=True)print("命令输出:")print(result.stdout)if result.stderr:print("错误输出:")print(result.stderr)return result.returncodeexcept subprocess.CalledProcessError as e:print(f"命令执行失败,返回码: {e.returncode}")print(f"错误输出: {e.stderr}")return e.returncodeexcept FileNotFoundError:print("命令或程序不存在")return -1def display_menu():"""显示功能菜单"""print("\nPython 系统操作工具")print("1. 获取当前工作目录")print("2. 改变当前工作目录")print("3. 列出目录内容")print("4. 创建目录")print("5. 删除目录")print("6. 删除文件")print("7. 重命名文件或目录")print("8. 获取环境变量")print("9. 执行系统命令")print("0. 退出")def main():while True:display_menu()choice = input("请选择操作 (0-9): ")if choice == '0':print("退出程序")breakelif choice == '1':print(f"当前工作目录: {get_current_directory()}")elif choice == '2':path = input("请输入要切换到的目录路径: ")change_directory(path)elif choice == '3':path = input("请输入要列出的目录路径 (留空为当前目录): ")list_directory_contents(path if path else '.')elif choice == '4':path = input("请输入要创建的目录路径: ")create_directory(path)elif choice == '5':path = input("请输入要删除的目录路径: ")confirm = input(f"确定要删除目录 {path} 吗? (y/n): ")if confirm.lower() == 'y':remove_directory(path)elif choice == '6':filepath = input("请输入要删除的文件路径: ")confirm = input(f"确定要删除文件 {filepath} 吗? (y/n): ")if confirm.lower() == 'y':delete_file(filepath)elif choice == '7':old_path = input("请输入原路径: ")new_path = input("请输入新路径: ")rename_file_or_dir(old_path, new_path)elif choice == '8':var_name = input("请输入要查询的环境变量名: ")get_environment_variable(var_name)elif choice == '9':command = input("请输入要执行的系统命令: ")execute_system_command(command)else:print("无效选择,请重新输入!")input("\n按Enter键继续...")if __name__ == "__main__":main()

2.2  运行效果

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

相关文章:

  • ${project.basedir}延申出来的Maven内置的一些常用属性
  • Linux 第一个系统程序 - 进度条
  • 基于springboot的物流配货系统
  • 内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
  • JK触发器Multisim电路仿真——硬件工程师笔记
  • 【读论文】GLM-4.1V-Thinking 解读:用强化学习解锁 VLM 的通用推理能力
  • 进程于线程 -1
  • 小架构step系列08:logback.xml的配置
  • 数据提取之lxml模块与xpath工具
  • LLM探索的时代
  • 大学数字经济专业课程介绍
  • maven 发布到中央仓库之持续集成-03
  • 无缝矩阵支持音频分离带画面分割功能的全面解析
  • 【适合 Java 工程师的 AI 转型方向】
  • Shader面试题100道之(21-40)
  • 复杂任务攻坚:多模态大模型推理技术从 CoT 数据到 RL 优化的突破之路
  • 使用python的 FastApi框架开发图书管理系统-前后端分离项目分享
  • Linux操作系统:再谈虚拟地址空间
  • 【UE5】虚幻引擎的运行逻辑
  • 智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)
  • Tomcat与IIS:核心差异及接口调用实战解析
  • Spring中过滤器和拦截器的区别及具体实现
  • 26.安卓逆向2-frida hook技术-解密响应
  • LoRaWAN 有几种入网方式?
  • DMA技术与音频数据的存储和播放
  • LLM视觉领域存在模型视觉识别不准确、细粒度视觉任务能力不足等科学问题
  • (四)机器学习小白入门YOLOv :图片标注实操手册
  • C#中封装halcon函数的报错
  • 用基础模型构建应用(第七章)AI Engineering: Building Applications with Foundation Models学习笔记
  • Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库