os模块中文件和路径操作方法的综合整理

os模块中文件和路径操作方法的综合整理

1. 路径相关的方法

os.path.exists(path)
  • 说明: 判断指定路径是否存在。返回 True 如果路径存在,否则返回 False
  • 示例:
    import os
    path = "/path/to/file"
    if os.path.exists(path):
        print("Path exists.")
    
os.path.isabs(path)
  • 说明: 判断指定路径是否为绝对路径。
  • 示例:
    path = "/usr/bin/python"
    print(os.path.isabs(path))  # True
    
os.path.isfile(path)
  • 说明: 判断指定路径是否为文件。
  • 示例:
    path = "/path/to/file"
    print(os.path.isfile(path))  # True or False
    
os.path.isdir(path)
  • 说明: 判断指定路径是否为目录。
  • 示例:
    path = "/path/to/directory"
    print(os.path.isdir(path))  # True or False
    
os.path.join(*paths)
  • 说明: 将多个路径组合成一个路径,使用适当的路径分隔符。
  • 示例:
    base_path = "/home/user"
    file_name = "document.txt"
    full_path = os.path.join(base_path, file_name)
    print(full_path)  # /home/user/document.txt
    
os.path.basename(path)
  • 说明: 返回路径的最后一部分(文件名或目录名)。
  • 示例:
    path = "/home/user/document.txt"
    print(os.path.basename(path))  # document.txt
    
os.path.dirname(path)
  • 说明: 返回路径中的目录部分。
  • 示例:
    path = "/home/user/document.txt"
    print(os.path.dirname(path))  # /home/user
    
os.path.split(path)
  • 说明: 将路径拆分为目录和文件名两部分,返回 (dirname, basename)
  • 示例:
    path = "/home/user/document.txt"
    print(os.path.split(path))  # ('/home/user', 'document.txt')
    
os.path.splitext(path)
  • 说明: 分离文件名和扩展名,返回 (filename, extension)
  • 示例:
    path = "/home/user/document.txt"
    print(os.path.splitext(path))  # ('/home/user/document', '.txt')
    
os.path.abspath(path)
  • 说明: 返回路径的绝对路径。
  • 示例:
    path = "document.txt"
    print(os.path.abspath(path))  # /current/directory/document.txt
    
os.path.realpath(path)
  • 说明: 返回路径的真实路径,解决符号链接。
  • 示例:
    path = "/usr/bin/python"
    print(os.path.realpath(path))  # /usr/local/bin/python (if symlink)
    
os.path.normpath(path)
  • 说明: 规范化路径,去掉多余的分隔符和上级目录引用。
  • 示例:
    path = "/home//user/../user2/./document.txt"
    print(os.path.normpath(path))  # /home/user2/document.txt
    
os.path.expanduser(path)
  • 说明: 将 ~ 展开为用户主目录。
  • 示例:
    path = "~/document.txt"
    print(os.path.expanduser(path))  # /home/username/document.txt
    
os.path.expandvars(path)
  • 说明: 扩展路径中的环境变量。
  • 示例:
    path = "$HOME/document.txt"
    print(os.path.expandvars(path))  # /home/username/document.txt
    

2. 文件和目录操作的方法

os.listdir(path)
  • 说明: 返回指定目录下的所有文件和子目录列表。
  • 示例:
    path = "/path/to/directory"
    files_and_dirs = os.listdir(path)
    print(files_and_dirs)  # ['file1.txt', 'file2.txt', 'subdir1', ...]
    
os.mkdir(path, mode=0o777)
  • 说明: 创建一个新目录,可以指定权限。
  • 示例:
    path = "/path/to/new_directory"
    os.mkdir(path)
    
os.makedirs(name, mode=0o777, exist_ok=False)
  • 说明: 递归创建目录路径。如果路径已存在且 exist_ok=True,则不会报错。
  • 示例:
    path = "/path/to/multiple/directories"
    os.makedirs(path, exist_ok=True)
    
os.rmdir(path)
  • 说明: 删除一个空目录。
  • 示例:
    path = "/path/to/directory"
    os.rmdir(path)
    
os.remove(path)
  • 说明: 删除指定路径的文件或符号链接。
  • 示例:
    path = "/path/to/file.txt"
    os.remove(path)
    
os.rename(src, dst)
  • 说明: 重命名文件或目录。
  • 示例:
    src = "/path/to/old_name.txt"
    dst = "/path/to/new_name.txt"
    os.rename(src, dst)
    
os.replace(src, dst)
  • 说明: 安全地重命名文件或目录,即使目标已存在。
  • 示例:
    src = "/path/to/old_name.txt"
    dst = "/path/to/new_name.txt"
    os.replace(src, dst)
    
os.chdir(path)
  • 说明: 改变当前工作目录。
  • 示例:
    path = "/path/to/directory"
    os.chdir(path)
    print(os.getcwd())  # 验证当前目录
    
os.getcwd()
  • 说明: 返回当前工作目录路径。
  • 示例:
    current_directory = os.getcwd()
    print(current_directory)
    
os.symlink(src, dst)
  • 说明: 创建符号链接。
  • 示例:
    src = "/path/to/original/file.txt"
    dst = "/path/to/symlink/file.txt"
    os.symlink(src, dst)
    
os.stat(path)
  • 说明: 获取指定路径的文件或目录状态信息。
  • 示例:
    path = "/path/to/file.txt"
    file_stat = os.stat(path)
    print(file_stat)  # 查看文件大小、修改时间等信息
    
os.walk(top, topdown=True, onerror=None, followlinks=False)
  • 说明: 生成目录树下的文件名,递归遍历目录。
  • 示例:
    for dirpath, dirnames, filenames in os.walk("/path/to/directory"):
        print(f"Directory: {dirpath}")
        print(f"Subdirectories: {dirnames}")
        print(f"Files: {filenames}")
    

3. 综合示例

以下示例演示了如何使用上述方法来操作文件和目录:

import os

# 设置路径
base_dir = os.path.expanduser("~/my_project")
data_dir = os.path.join(base_dir, "data")
file_path = os.path.join(data_dir, "data.txt")

# 创建目录
os.makedirs(data_dir, exist_ok=True)

# 检查文件是否存在,如果不存在则创建
if not os.path.exists(file_path):
    with open(file_path, 'w') as f:
        f.write("Sample data")

# 获取文件信息
file_stat = os.stat(file_path)
print(f"File Size: {file_stat.st_size} bytes")

# 列出目录中的文件
files = os.listdir(data_dir)
print("Files in data directory:", files)

# 遍历目录树
for dirpath, dirnames, filenames in os.walk(base_dir):
    print(f"Found directory: {dirpath}")
    for filename in filenames:
        print(f" - {filename}")
  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值