本文目录导读:

我来详细介绍Python中创建和删除文件夹的方法。
创建文件夹
使用 os.mkdir() - 创建单级目录
import os
# 创建单个文件夹
os.mkdir('new_folder')
print("文件夹创建成功")
# 如果文件夹已存在会报错,建议先检查
folder_path = 'my_folder'
if not os.path.exists(folder_path):
os.mkdir(folder_path)
print(f"文件夹 {folder_path} 创建成功")
else:
print(f"文件夹 {folder_path} 已存在")
使用 os.makedirs() - 创建多级目录
import os
# 创建多级目录,如果父目录不存在会自动创建
os.makedirs('parent/child/grandchild', exist_ok=True)
print("多级目录创建成功")
# exist_ok=True 表示如果目录已存在不会报错
os.makedirs('a/b/c', exist_ok=True)
使用 pathlib (Python 3.4+ 推荐)
from pathlib import Path
# 创建单个文件夹
Path('new_folder2').mkdir(exist_ok=True)
# 创建多级目录
Path('parent2/child2/grandchild2').mkdir(parents=True, exist_ok=True)
删除文件夹
使用 os.rmdir() - 删除空文件夹
import os
# 只能删除空文件夹
folder_path = 'empty_folder'
if os.path.exists(folder_path):
os.rmdir(folder_path)
print(f"空文件夹 {folder_path} 删除成功")
else:
print("文件夹不存在")
使用 shutil.rmtree() - 删除非空文件夹
import shutil
import os
# 删除整个文件夹及其所有内容
folder_path = 'my_folder'
if os.path.exists(folder_path):
shutil.rmtree(folder_path)
print(f"文件夹 {folder_path} 及其所有内容已删除")
else:
print("文件夹不存在")
完整示例:创建和删除操作
import os
import shutil
from pathlib import Path
class FolderManager:
def __init__(self, base_path='.'):
self.base_path = base_path
def create_folder(self, folder_name):
"""创建文件夹"""
folder_path = os.path.join(self.base_path, folder_name)
try:
# 使用os模块
if not os.path.exists(folder_path):
os.makedirs(folder_path)
print(f"文件夹 {folder_path} 创建成功")
return True
else:
print(f"文件夹 {folder_path} 已存在")
return False
except Exception as e:
print(f"创建文件夹失败: {e}")
return False
def create_nested_folders(self, folder_path):
"""创建嵌套文件夹"""
try:
os.makedirs(folder_path, exist_ok=True)
print(f"嵌套文件夹 {folder_path} 创建成功")
return True
except Exception as e:
print(f"创建嵌套文件夹失败: {e}")
return False
def delete_folder(self, folder_name):
"""删除文件夹"""
folder_path = os.path.join(self.base_path, folder_name)
try:
if os.path.exists(folder_path):
# 检查是否为文件夹
if os.path.isdir(folder_path):
# 检查是否为空
if not os.listdir(folder_path):
os.rmdir(folder_path)
print(f"空文件夹 {folder_path} 删除成功")
else:
# 非空文件夹使用shutil
shutil.rmtree(folder_path)
print(f"非空文件夹 {folder_path} 及其内容已删除")
return True
else:
print(f"文件夹 {folder_path} 不存在")
return False
except Exception as e:
print(f"删除文件夹失败: {e}")
return False
def safe_delete(self, folder_path, confirm=False):
"""安全删除(带确认)"""
if not os.path.exists(folder_path):
print("文件夹不存在")
return False
if confirm:
response = input(f"确认删除 {folder_path} 及其所有内容?(y/n): ")
if response.lower() != 'y':
print("删除已取消")
return False
try:
shutil.rmtree(folder_path)
print(f"{folder_path} 已安全删除")
return True
except Exception as e:
print(f"删除失败: {e}")
return False
def list_folders(self):
"""列出当前目录下的所有文件夹"""
folders = []
for item in os.listdir(self.base_path):
item_path = os.path.join(self.base_path, item)
if os.path.isdir(item_path):
folders.append(item)
return folders
# 使用示例
def main():
manager = FolderManager()
# 创建文件夹
print("=== 创建文件夹 ===")
manager.create_folder('test_folder')
manager.create_folder('test_folder') # 尝试创建已存在的文件夹
manager.create_nested_folders('a/b/c/d')
# 列出所有文件夹
print("\n=== 当前文件夹列表 ===")
folders = manager.list_folders()
for f in folders:
print(f" - {f}")
# 删除文件夹
print("\n=== 删除文件夹 ===")
manager.delete_folder('test_folder')
manager.delete_folder('a')
# 创建一些文件用于演示
print("\n=== 创建非空文件夹演示 ===")
os.makedirs('demo_folder', exist_ok=True)
with open('demo_folder/test.txt', 'w') as f:
f.write('这是一个测试文件')
# 安全删除(带确认)
# manager.safe_delete('demo_folder', confirm=True)
# 直接删除非空文件夹
manager.delete_folder('demo_folder')
print("\n=== 最终文件夹列表 ===")
folders = manager.list_folders()
for f in folders:
print(f" - {f}")
if __name__ == "__main__":
main()
注意事项
权限问题
import os
import stat
# 修改文件夹权限
folder_path = 'restricted_folder'
if os.path.exists(folder_path):
# 修改为完全权限
os.chmod(folder_path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
# 然后尝试删除
os.rmdir(folder_path)
路径处理建议
import os
from pathlib import Path
# 推荐使用Path处理路径
base_dir = Path(__file__).parent # 脚本所在目录
new_folder = base_dir / 'data' / 'backup'
new_folder.mkdir(parents=True, exist_ok=True)
# 使用绝对路径避免混淆
abs_path = os.path.abspath('my_folder')
print(f"绝对路径: {abs_path}")
异常处理模板
import os
import shutil
def safe_delete_folder(folder_path):
"""安全的删除文件夹函数"""
try:
if os.path.exists(folder_path):
shutil.rmtree(folder_path)
print(f"{folder_path} 删除成功")
return True
else:
print(f"{folder_path} 不存在")
return False
except PermissionError:
print(f"没有权限删除 {folder_path}")
return False
except OSError as e:
print(f"删除失败: {e}")
return False
这些代码涵盖了Python中创建和删除文件夹的常用方法,记得在实际使用时根据需求选择合适的函数,并做好异常处理。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播