Python Tutorials

Python文件和目录操作技巧 Python文件与目录操作精通 精通Python的文件与目录操作 掌握Python的文件和目录操作 Python进阶:文件与目录操作

Spread the love

本教程提供一份关于Python中基本文件和目录操作的全面指南,利用`os`和`shutil`模块的强大功能。我们将涵盖创建、访问、列出、修改和删除目录,使您能够有效地管理Python脚本中的文件系统。

目录

  1. 创建目录
  2. 获取当前目录
  3. 列出目录内容
  4. 更改工作目录
  5. 重命名和删除目录
  6. 路径操作技巧
  7. 健壮的错误处理

1. 创建目录

`os`模块提供与操作系统交互的函数。`os.mkdir()`创建单个目录,而`os.makedirs()`处理嵌套目录的创建。`exist_ok`参数可以防止目录已存在时出现错误。


import os

# 创建单个目录
os.mkdir("my_new_directory")

# 创建嵌套目录
os.makedirs("nested/directories/example", exist_ok=True) 

print("目录创建成功!")

2. 获取当前目录

使用`os.getcwd()`检索当前工作目录。


import os

current_directory = os.getcwd()
print(f"当前工作目录:{current_directory}")

3. 列出目录内容

`os.listdir()`列出路径中的所有条目(文件和目录)。将其与`os.path.isdir()`结合使用,仅筛选目录。


import os

directory_path = "."
all_entries = os.listdir(directory_path)

directories = [entry for entry in all_entries if os.path.isdir(os.path.join(directory_path, entry))]

print("目录:")
for directory in directories:
    print(directory)

4. 更改工作目录

`os.chdir()`更改当前工作目录。始终包含错误处理(例如,使用`try-except`块)来管理潜在问题,例如不存在的目录。


import os

try:
    os.chdir("my_new_directory")
    print(f"当前工作目录已更改为:{os.getcwd()}")
    os.chdir("..") #返回上一级目录
    print(f"当前工作目录已更改回:{os.getcwd()}")
except FileNotFoundError:
    print("错误:找不到目录。")
except OSError as e:
    print(f"发生操作系统错误:{e}")

5. 重命名和删除目录

`os.rename()`重命名目录。`os.rmdir()`删除空目录。对于非空目录,请谨慎使用`shutil.rmtree()`,因为它会递归删除目标目录中的所有内容。在使用此函数之前,请务必备份重要数据。


import os
import shutil

# 重命名目录
os.rename("my_new_directory", "renamed_directory")

# 删除空目录
os.rmdir("empty_directory") #需要一个名为"empty_directory"的空目录

# 删除非空目录(谨慎使用!)
shutil.rmtree("non_empty_directory") #需要一个名为"non_empty_directory"的目录 - 这将删除其中的所有内容

print("目录操作完成。")

6. 路径操作技巧

`os.path`模块提供用于安全和可移植路径操作的工具,对于避免特定于平台的问题至关重要。


import os

# 安全地连接路径
path = os.path.join("path", "to", "my", "file.txt")

# 获取文件名和扩展名
file_name, file_ext = os.path.splitext(path)

# 检查路径是否存在
if os.path.exists(path):
    print("路径存在")

7. 健壮的错误处理

始终预测潜在错误(例如,`FileNotFoundError`、`PermissionError`、`OSError`)并实现适当的错误处理机制,以使您的代码健壮并防止意外崩溃。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注