avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home 创建删除文件夹、文件(pathlib 模块)
文章

创建删除文件夹、文件(pathlib 模块)

Posted 2024-10-25 Updated 2024-10- 22
By RWO.
12~16 min read

pathlib 是 Python 3.4 引入的一个模块,提供了更现代、更面向对象的文件和目录操作接口。以下是如何使用 pathlib 模块来创建和删除文件夹及文件。

使用 pathlib 模块

创建文件夹

使用 pathlib 可以方便地创建单级或多级目录。

示例:创建单级目录

from pathlib import Path

def create_single_directory(directory):
    path = Path(directory)
    try:
        path.mkdir()
        print(f"目录 {directory} 创建成功")
    except FileExistsError:
        print(f"目录 {directory} 已经存在")
    except Exception as e:
        print(f"创建目录 {directory} 时发生错误: {e}")

# 示例调用
create_single_directory('new_folder_pathlib')

示例:递归创建多级目录

from pathlib import Path

def create_multiple_directories(directory):
    path = Path(directory)
    try:
        path.mkdir(parents=True)
        print(f"目录 {directory} 及其所有子目录创建成功")
    except FileExistsError:
        print(f"目录 {directory} 已经存在")
    except Exception as e:
        print(f"创建目录 {directory} 时发生错误: {e}")

# 示例调用
create_multiple_directories('parent_folder_pathlib/child_folder_pathlib')

删除文件夹

使用 pathlib 可以删除单级目录,如果目录不为空则会引发异常。可以使用递归删除函数来删除目录及其所有内容。

示例:删除单级空目录

from pathlib import Path

def delete_single_directory(directory):
    path = Path(directory)
    try:
        path.rmdir()
        print(f"目录 {directory} 删除成功")
    except FileNotFoundError:
        print(f"目录 {directory} 不存在")
    except OSError:
        print(f"目录 {directory} 非空,无法删除")
    except Exception as e:
        print(f"删除目录 {directory} 时发生错误: {e}")

# 示例调用
delete_single_directory('new_folder_pathlib')

示例:递归删除目录及其所有内容

from pathlib import Path
import shutil

def delete_multiple_directories(directory):
    path = Path(directory)
    try:
        shutil.rmtree(path)
        print(f"目录 {directory} 及其所有子目录删除成功")
    except FileNotFoundError:
        print(f"目录 {directory} 不存在")
    except Exception as e:
        print(f"删除目录 {directory} 时发生错误: {e}")

# 示例调用
delete_multiple_directories('parent_folder_pathlib')

创建文件

使用 pathlib 的 Path.write_text() 方法可以方便地创建文件并写入内容。

示例:创建文件并写入内容

from pathlib import Path

def create_file(file_path, content=''):
    path = Path(file_path)
    try:
        path.write_text(content)
        print(f"文件 {file_path} 创建成功")
    except Exception as e:
        print(f"创建文件 {file_path} 时发生错误: {e}")

# 示例调用
create_file('example_file_pathlib.txt', 'Hello, world!')

删除文件

使用 pathlib 的 Path.unlink() 方法可以删除文件。

示例:删除文件

from pathlib import Path

def delete_file(file_path):
    path = Path(file_path)
    try:
        path.unlink()
        print(f"文件 {file_path} 删除成功")
    except FileNotFoundError:
        print(f"文件 {file_path} 不存在")
    except Exception as e:
        print(f"删除文件 {file_path} 时发生错误: {e}")

# 示例调用
delete_file('example_file_pathlib.txt')

综合示例

以下是一个综合示例,展示如何使用 pathlib 模块来创建和删除文件夹及文件:

from pathlib import Path
import shutil

# 创建单级目录
def create_single_directory(directory):
    path = Path(directory)
    try:
        path.mkdir()
        print(f"目录 {directory} 创建成功")
    except FileExistsError:
        print(f"目录 {directory} 已经存在")
    except Exception as e:
        print(f"创建目录 {directory} 时发生错误: {e}")

# 递归创建多级目录
def create_multiple_directories(directory):
    path = Path(directory)
    try:
        path.mkdir(parents=True)
        print(f"目录 {directory} 及其所有子目录创建成功")
    except FileExistsError:
        print(f"目录 {directory} 已经存在")
    except Exception as e:
        print(f"创建目录 {directory} 时发生错误: {e}")

# 删除单级空目录
def delete_single_directory(directory):
    path = Path(directory)
    try:
        path.rmdir()
        print(f"目录 {directory} 删除成功")
    except FileNotFoundError:
        print(f"目录 {directory} 不存在")
    except OSError:
        print(f"目录 {directory} 非空,无法删除")
    except Exception as e:
        print(f"删除目录 {directory} 时发生错误: {e}")

# 递归删除目录及其所有内容
def delete_multiple_directories(directory):
    path = Path(directory)
    try:
        shutil.rmtree(path)
        print(f"目录 {directory} 及其所有子目录删除成功")
    except FileNotFoundError:
        print(f"目录 {directory} 不存在")
    except Exception as e:
        print(f"删除目录 {directory} 时发生错误: {e}")

# 创建文件并写入内容
def create_file(file_path, content=''):
    path = Path(file_path)
    try:
        path.write_text(content)
        print(f"文件 {file_path} 创建成功")
    except Exception as e:
        print(f"创建文件 {file_path} 时发生错误: {e}")

# 删除文件
def delete_file(file_path):
    path = Path(file_path)
    try:
        path.unlink()
        print(f"文件 {file_path} 删除成功")
    except FileNotFoundError:
        print(f"文件 {file_path} 不存在")
    except Exception as e:
        print(f"删除文件 {file_path} 时发生错误: {e}")

# 示例调用
create_single_directory('example_folder_pathlib')
create_multiple_directories('parent_folder_pathlib/child_folder_pathlib')
create_file('example_folder_pathlib/example_file.txt', 'Hello, world!')
delete_file('example_folder_pathlib/example_file.txt')
delete_single_directory('example_folder_pathlib')
delete_multiple_directories('parent_folder_pathlib')

通过这些示例,你可以使用 pathlib 模块来方便地创建和删除文件夹及文件。pathlib 提供了更现代和面向对象的接口,使得文件系统操作更加简洁和易于维护。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

创建删除文件夹、文件(os模块)

NEWER

Python 使用 ffmpeg 进行 音视频格式转换等操作

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy