「Python系列」Python OS文件/目录方法、Python错误和异常

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
云原生网关 MSE Higress,422元/月
可观测监控 Prometheus 版,每月50GB免费额度
简介: Python的`os`模块提供了与操作系统交互的方法,包括文件和目录的操作。

一、Python OS 文件/目录方法

Python的os模块提供了与操作系统交互的方法,包括文件和目录的操作。以下是一些常用的os模块中的文件/目录方法:

目录操作

  • os.getcwd(): 返回当前工作目录的路径。
import os
current_directory = os.getcwd()
print(current_directory)
  • os.chdir(path): 改变当前工作目录到指定的路径。
import os
os.chdir("/path/to/new/directory")
  • os.mkdir(path, mode=0o777): 创建一个新目录。mode参数指定了目录的权限。
import os
os.mkdir("new_directory")
  • os.makedirs(path, mode=0o777, exist_ok=False): 递归地创建目录。如果目录已存在,exist_ok=True则不会引发异常。
import os
os.makedirs("path/to/new/directory", exist_ok=True)
  • os.rmdir(path): 删除一个空目录。
import os
os.rmdir("empty_directory")
  • os.removedirs(path): 递归地删除目录及其内容。
import os
os.removedirs("path/to/directory_and_contents")
  • os.listdir(path): 列出指定目录下的文件和子目录名。
import os
files_and_directories = os.listdir("/path/to/directory")
for item in files_and_directories:
    print(item)

文件操作

  • os.path.exists(path): 检查指定路径的文件或目录是否存在。
import os
if os.path.exists("/path/to/file_or_directory"):
    print("File or directory exists.")
  • os.path.isfile(path): 检查指定路径是否是一个文件。
import os
if os.path.isfile("/path/to/file"):
    print("This is a file.")
  • os.path.isdir(path): 检查指定路径是否是一个目录。
import os
if os.path.isdir("/path/to/directory"):
    print("This is a directory.")
  • os.path.getsize(path): 返回指定文件的大小(以字节为单位)。
import os
file_size = os.path.getsize("/path/to/file")
print(f"File size: {file_size} bytes")
  • os.remove(path): 删除一个文件。
import os
os.remove("/path/to/file")
  • os.rename(old_path, new_path): 重命名文件或目录。
import os
os.rename("/path/to/old_name", "/path/to/new_name")
  • os.stat(path): 获取文件或目录的状态信息,返回一个os.stat_result对象。
import os
stat_info = os.stat("/path/to/file_or_directory")
print(stat_info.st_size)  # 获取文件大小

这些方法只是os模块中文件/目录操作的一小部分。os模块还提供了许多其他功能,如文件权限管理、环境变量操作、进程管理等。在使用这些功能时,请确保你的代码跨平台兼容,因为不同的操作系统可能在文件路径表示、文件权限等方面存在差异。

二、Python错误和异常

在Python中,错误和异常是程序运行时可能遇到的问题,这些问题会中断正常的程序流程。Python使用异常处理机制来管理这些错误和异常情况。当错误发生时,Python会抛出一个异常,你可以使用tryexceptfinallyelse语句来捕获和处理这些异常。

常见的Python错误和异常

  1. SyntaxError: 语法错误,代码中有语法上的问题,比如缺少括号、引号不匹配等。

  2. IndentationError: 缩进错误,Python使用缩进来表示代码块,缩进错误会导致语法错误。

  3. NameError: 名称错误,当尝试访问一个未定义的变量时触发。

  4. TypeError: 类型错误,当对某个对象执行不适当的操作时触发,比如尝试将字符串和数字相加。

  5. ValueError: 值错误,当函数的参数值不正确时触发,比如尝试将非数字字符串转换为整数。

  6. KeyError: 键错误,当在字典中查找不存在的键时触发。

  7. IndexError: 索引错误,当尝试访问序列(如列表、元组或字符串)中不存在的索引时触发。

  8. AttributeError: 属性错误,当尝试访问对象的一个不存在的属性时触发。

  9. IOErrorOSError: 输入/输出错误或操作系统错误,涉及文件操作或底层系统调用时的错误。

异常处理

Python使用tryexceptelsefinally语句来处理异常。

  • try: 包含可能会引发异常的代码块。

  • except: 当try块中的代码引发异常时执行。可以指定要捕获的异常类型。

  • else: 如果try块中的代码没有引发异常,则执行else块中的代码。

  • finally: 无论是否引发异常,finally块中的代码都会执行。通常用于资源清理。

示例

try:
    # 尝试执行可能会引发异常的代码
    result = 10 / 0  # 这将引发一个ZeroDivisionError
except ZeroDivisionError:
    # 捕获ZeroDivisionError异常,并处理它
    print("Cannot divide by zero!")
except TypeError as e:
    # 捕获其他类型的异常,并打印异常信息
    print(f"A TypeError occurred: {e}")
else:
    # 如果没有异常发生,执行这里的代码
    print("The division was successful.")
finally:
    # 无论是否发生异常,都会执行这里的代码
    print("Cleaning up resources...")

在上面的示例中,尝试除以零会引发ZeroDivisionError异常,该异常会被第一个except块捕获并处理。如果尝试执行其他操作(比如将字符串和数字相加)导致TypeError,那么第二个except块会捕获该异常。如果try块中的代码成功执行而没有引发任何异常,则会执行else块中的代码。无论是否发生异常,finally块中的代码都会被执行。

自定义异常

除了内置的异常类型,你还可以创建自定义异常类,通过继承内置的Exception类或其子类来实现。

class CustomError(Exception):
    pass

try:
    raise CustomError("This is a custom error.")
except CustomError as e:
    print(e)

在这个例子中,我们创建了一个名为CustomError的自定义异常类,并在try块中引发了这个异常。然后在except块中捕获并处理了这个自定义异常。

三、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
  8. 「Python系列」Python数据结构
  9. 「Python系列」Python元组
  10. 「Python系列」Python集合
  11. 「Python系列」Python列表
相关文章
|
7天前
|
人工智能 自然语言处理 算法
随机的暴力美学蒙特卡洛方法 | python小知识
蒙特卡洛方法是一种基于随机采样的计算算法,广泛应用于物理学、金融、工程等领域。它通过重复随机采样来解决复杂问题,尤其适用于难以用解析方法求解的情况。该方法起源于二战期间的曼哈顿计划,由斯坦尼斯拉夫·乌拉姆等人提出。核心思想是通过大量随机样本来近似真实结果,如估算π值的经典示例。蒙特卡洛树搜索(MCTS)是其高级应用,常用于游戏AI和决策优化。Python中可通过简单代码实现蒙特卡洛方法,展示其在文本生成等领域的潜力。随着计算能力提升,蒙特卡洛方法的应用范围不断扩大,成为处理不确定性和复杂系统的重要工具。
49 21
|
5天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
23 10
|
1月前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
1月前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
310 5
|
2月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
101 0
Vanilla OS:下一代安全 Linux 发行版
|
19天前
|
弹性计算 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
90 2
OS Copilot-操作系统智能助手-Linux新手小白的福音
|
11天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
54 7
|
12天前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
36 5
|
13天前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
109 4