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

发布于:2025-07-09 ⋅ 阅读:(22) ⋅ 点赞:(0)

最近有个项目需要做视觉自动化处理的工具,最后选用的软件为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 content
    except IOError as e:
        print(f"读取文件时出错: {e}")
        return None

def 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 sys

def 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 value

def 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.returncode
    except subprocess.CalledProcessError as e:
        print(f"命令执行失败,返回码: {e.returncode}")
        print(f"错误输出: {e.stderr}")
        return e.returncode
    except FileNotFoundError:
        print("命令或程序不存在")
        return -1

def 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("退出程序")
            break
            
        elif 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  运行效果


网站公告

今日签到

点亮在社区的每一天
去签到