文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 路径操作的八个实用函数详解

2024-11-29 19:24

关注

1.获取当前工作目录 - os.getcwd()

功能:返回当前脚本的工作目录。

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

这段代码会打印出你的程序当前所在的目录路径。

2.改变当前工作目录 - os.chdir(path)

功能:改变当前工作目录到指定的路径。

new_dir = "/path/to/new/directory"
# 注意:这里应该替换为实际路径
os.chdir(new_dir)
print(os.getcwd())

确保提供的路径存在,否则会抛出错误。

3.拼接路径 - os.path.join()

功能:安全地连接多个路径片段。

base_path = "/home/user"
file_name = "example.txt"
full_path = os.path.join(base_path, file_name)
print(full_path)

这避免了平台相关的路径分隔符问题(如Windows的\和Linux的/)。

4.分离路径和文件名 - os.path.split()

功能:将路径分割成目录和文件名两部分。

path = "/home/user/example.txt"
dir_path, file_name = os.path.split(path)
print(f"目录: {dir_path}, 文件名: {file_name}")

5.检查路径是否存在 - os.path.exists(path)

功能:检查指定路径是否存在。

test_path = "/home/user/check.txt"
if os.path.exists(test_path):
    print("路径存在!")
else:
    print("路径不存在。")

6.创建目录 - os.makedirs(path, exist_ok=False)

功能:创建多级目录结构。

dir_to_create = "/home/user/new/subdirectory"
os.makedirs(dir_to_create, exist_ok=True)  # exist_ok=True防止已存在时出错

如果路径已经存在并且设置了exist_ok=True,则不会报错。

7.列出目录下的文件 - os.listdir(directory)

功能:返回指定目录下的文件和目录名列表。

dir_list = os.listdir(".")
for item in dir_list:
    print(item)

.代表当前目录。

8.使用pathlib进行现代路径操作

功能:Path对象提供了更加面向对象的路径操作方式。

from pathlib import Path

my_path = Path("/home/user/documents")
# 创建目录
my_path.mkdir(parents=True, exist_ok=True)

# 读取目录下的所有文件名
for file in my_path.iterdir():
    if file.is_file():
        print(file.name)

Path对象让路径操作更加直观和简洁,支持链式调用方法。

9.处理相对路径 - os.path.relpath(path[, start])

功能:获得从某个目录到另一个目录或文件的相对路径。

current_dir = os.getcwd()
file_in_another_dir = "/home/user/documents/report.txt"
relative_path = os.path.relpath(file_in_another_dir, current_dir)
print(f"相对于当前目录的路径是: {relative_path}")

这个功能在需要构建相对于当前工作目录的文件路径时非常有用。

10.探索符号链接 - os.path.islink(), os.readlink(), 和 os.symlink()

符号链接是文件系统中的一个重要概念,它允许一个文件或目录通过一个“链接”指向另一个位置。

检查是否为符号链接 :

link_path = "/path/to/some/link"
if os.path.islink(link_path):
    print("这是一个符号链接!")
else:
    print("这不是一个符号链接。")

读取符号链接的目标 :

if os.path.islink(link_path):
    target = os.readlink(link_path)
    print(f"符号链接指向: {target}")

创建符号链接 : 在创建符号链接时,需要注意权限和目标路径的存在。

original_file = "/path/to/original/file.txt"
symbolic_link = "/path/to/symbolic/link.txt"
# 注意:这可能需要管理员权限
os.symlink(original_file, symbolic_link)
print("符号链接创建成功!")

在执行这些操作时,请确保你有相应的权限,并且了解符号链接在不同操作系统上的行为差异。

实战案例分析

假设我们需要创建一个脚本,该脚本首先确认一个目标目录是否存在,如果不存在,则创建它,然后在该目录下创建一个新的文本文件并写入一些内容。

from pathlib import Path

target_dir = Path("/home/user/project/docs")
file_name = "readme.txt"

# 确保目录存在
target_dir.mkdir(parents=True, exist_ok=True)

# 创建并写入文件
with open(target_dir / file_name, 'w') as f:
    f.write("这是一个示例文档。")

print(f"文件已成功创建在{target_dir / file_name}")

这个案例展示了如何结合使用pathlib模块的高级功能,以一种清晰且错误容忍的方式完成复杂的路径操作任务。

练习技巧和注意事项

来源:手把手PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯