Python 中文件夹常见操作

在 Python 中,操作文件夹(或称为目录)通常涉及创建文件夹、删除文件夹、列出文件夹中的文件和子文件夹等任务。这些操作可以通过内置的 os 和 os.path 模块来完成。下面是一些常见的文件夹操作及其示例:

导入需要的模块

import os

创建文件夹

使用 os.mkdir() 或 os.makedirs() 来创建文件夹。os.mkdir() 用于创建单个文件夹,而 os.makedirs() 可以递归地创建所有必要的中间文件夹。

# 创建单个文件夹
os.mkdir('new_folder')
# 递归创建文件夹(如果中间文件夹不存在,也会被创建)
os.makedirs('path/to/new/folder', exist_ok=True)

exist_ok=True 参数用于防止在文件夹已存在时抛出异常。

删除文件夹

使用 os.rmdir() 删除空文件夹,使用 shutil.rmtree() 删除整个文件夹树(包括所有子文件夹和文件)。

import shutil
# 删除空文件夹
os.rmdir('empty_folder')
# 删除整个文件夹树(包括非空文件夹)
shutil.rmtree('folder_to_remove')

列出文件夹内容

使用 os.listdir() 或 os.scandir() 来列出文件夹中的文件和子文件夹。

# 列出文件夹中的文件和子文件夹名
files_and_folders = os.listdir('some_folder')
print(files_and_folders)
# 使用 os.scandir() 更高效地遍历文件夹内容(返回目录项对象)
for entry in os.scandir('some_folder'):
print(entry.name)
if entry.is_file():
print(f'{entry.name} is a file')
elif entry.is_dir():
print(f'{entry.name} is a directory')

os.scandir() 返回一个目录项对象,这些对象有 namepathis_file() 和 is_dir() 等属性,可以用于进一步的操作。

检查路径是否存在

使用 os.path.exists() 来检查一个路径(文件或文件夹)是否存在。

if os.path.exists('path/to/folder'):
print("The folder exists.")
else:
print("The folder does not exist.")

检查是否为文件夹

使用 os.path.isdir() 来检查一个路径是否为文件夹。

if os.path.isdir('path/to/folder'):
print("It's a directory.")
else:
print("It's not a directory.")

获取文件夹路径

使用 os.path.abspath() 或 os.path.realpath() 获取绝对路径。

absolute_path = os.path.abspath('relative/path/to/folder')
print(absolute_path)

遍历文件夹树

使用 os.walk() 来遍历文件夹树。

for root, dirs, files in os.walk('start_folder'):
print(f'Now in {root}')
for dir in dirs:
print(f'Directory: {dir}')
for file in files:
print(f'File: {file}')

更改当前工作目录

使用 os.chdir() 来更改当前工作目录。

os.chdir('/path/to/new/working/directory')

这些是 Python 中操作文件夹的一些基本方法。根据你的具体需求,你可能还需要处理权限问题、路径分隔符的差异(在 Windows 和 Unix-like 系统上不同)等。在处理文件和文件夹时,请确保你有足够的权限,并谨慎操作以避免数据丢失。

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackTm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值