最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。
链接:
开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-优快云博客
开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-优快云博客
开源 python 应用 开发(三)python语法介绍-优快云博客
开源 python 应用 开发(四)python文件和系统综合应用-优快云博客
推荐链接:
开源 Arkts 鸿蒙应用 开发(一)工程文件分析-优快云博客
开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-优快云博客
开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-优快云博客
开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-优快云博客
开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-优快云博客
推荐链接:
开源 java android app 开发(一)开发环境的搭建-优快云博客
开源 java android app 开发(二)工程文件结构-优快云博客
开源 java android app 开发(三)GUI界面布局和常用组件-优快云博客
开源 java android app 开发(四)GUI界面重要组件-优快云博客
开源 java android app 开发(五)文件和数据库存储-优快云博客
开源 java android app 开发(六)多媒体使用-优快云博客
开源 java android app 开发(七)通讯之Tcp和Http-优快云博客
开源 java android app 开发(八)通讯之Mqtt和Ble-优快云博客
开源 java android app 开发(九)后台之线程和服务-优快云博客
开源 java android app 开发(十)广播机制-优快云博客
开源 java android app 开发(十一)调试、发布-优快云博客
开源 java android app 开发(十二)封库.aar-优快云博客
推荐链接:
开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-优快云博客
开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-优快云博客
开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-优快云博客
开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-优快云博客
开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-优快云博客
本章节内容如下: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 运行效果