Python的os.path模块:【文件路径】操作轻松掌握!!!【建议收藏,方便查询】

2023-12-13 04:57:54

目录

引言

在Python编程中,处理文件路径是必不可少的环节。os.path模块,作为开发人员的得力助手,提供了众多功能强大的函数和工具,帮助我们以简洁高效的方式处理文件路径。在本文中,我们将深入探索os.path模块的各项功能及使用方法,并通过具体的示例代码为您详细解析。如果您希望更好地掌握Python中文件路径的操作技巧,本文将为您带来宝贵的参考价值。

os.path模块常用函数

1. 获取绝对路径os.path.abspath()

场景1:获取当前脚本文件的绝对路径

import os

# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__) # __file__是一个内置变量,表示当前文件的路径
print(script_path)

运行结果

D:\pycharmproject\python_project\demo_os.py

场景2:获取指定路径的绝对路径

import os

# 获取指定路径的绝对路径
relative_path = "lena.jpg"
absolute_path = os.path.abspath(relative_path)
print(absolute_path)

运行结果

D:\pycharmproject\python_project\lena.jpg

2. 拼接路径os.path.join()

场景1:拼接文件路径和文件名

import os

# 拼接文件路径和文件名
folder_path = "/path/to/folder"
file_name = "example.txt"
full_path = os.path.join(folder_path, file_name)
print(full_path)

运行结果

/path/to/folder/example.txt

场景2:拼接相对路径和绝对路径

import os

# 拼接相对路径和绝对路径
relative_path = "folder/subfolder"
absolute_path = "/path/to/root"
full_path = os.path.join(absolute_path, relative_path)
print(full_path)

运行结果

/path/to/root/folder/subfolder

场景3:拼接多个路径

import os

# 拼接多个路径
path1 = "/path/to/folder1"
path2 = "folder2"
path3 = "folder3/subfolder"
full_path = os.path.join(path1, path2, path3)
print(full_path)

运行结果

/path/to/folder1/folder2/folder3/subfolder

3. 获取路径中的目录名os.path.dirname()

# 获取目录名
full_path = './Documents/file.txt'
dir_name = os.path.dirname(full_path)
print(dir_name)

full_path = './file.txt'
dir_name = os.path.dirname(full_path)
print(dir_name)

运行结果

./Documents
.

4. 获取路径中的文件名os.path.dirname()

import os

# 获取文件名
full_path = './Documents/file.txt'
file_name = os.path.basename(full_path)
print(file_name)

运行结果

file.txt

5. 判断文件或目录是否存在os.path.exists()

import os

# 判断文件或目录是否存在
path = '/home/user/Documents'
exists = os.path.exists(path)
print(exists)  # True 或 False,根据路径是否存在而定

path = './demo.py'
exists = os.path.exists(path)
print(exists)  

path = 'demo.py'
exists = os.path.exists(path)
print(exists)  

运行结果

False
True
True

6. 判断是否为文件os.path.isfile()

import os

# 判断是否为文件
path = '/home/user/Documents'
is_file = os.path.isfile(path)  # 判断是否为文件
print(is_file)  # 输出:True 或 False,根据路径是否为文件路径而定

path = './demo.py'
is_file = os.path.isfile(path)  # 判断是否为文件
print(is_file)  # 输出:True 或 False,根据路径是否为文件路径而定

运行结果

False
True

7. 判断是否为目录os.path.isdir()

import os

# 判断是否为文件或目录
path = './'
is_dir = os.path.isdir(path)  # 判断是否为目录
print(is_dir)  # 输出:True 或 False,根据路径是否为目录路径而定

path = './demo.py'
is_dir = os.path.isdir(path)  # 判断是否为目录
print(is_dir)  # 输出:True 或 False,根据路径是否为目录路径而定

运行结果

True
False

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

import os

# 获取当前工作目录
current_working_directory = os.getcwd()
print(current_working_directory)

运行结果

D:\pycharmproject\python_project

9. 改变当前工作目录os.chdir()

场景1:进入指定目录

import os  
  
# 进入指定目录  
folder_path = "/path/to/folder"  
os.chdir(folder_path)  
print(os.getcwd())  # 打印当前工作目录,确认已成功进入指定目录

场景2:回到上级目录

import os  
  
# 回到上级目录  
os.chdir("..")  
print(os.getcwd())  # 打印当前工作目录,确认已成功回到上级目录

场景3:返回用户主目录

import os  
  
# 返回用户主目录  
os.chdir(os.path.expanduser("~"))  
print(os.getcwd())  # 打印当前工作目录,确认已成功返回用户主目录

10. 获取文件大小os.path.getsize()

场景1:获取指定文件的大小

import os  
  
# 获取指定文件的大小  
file_path = "/path/to/file.txt"  
file_size = os.path.getsize(file_path)  
print("文件大小为:", file_size, "字节")  # 打印文件大小,单位为字节

场景2:获取多个文件的大小总和

import os  
  
# 获取多个文件的大小总和  
folder_path = "/path/to/folder"  
total_size = 0  
for file_name in os.listdir(folder_path):  
    file_path = os.path.join(folder_path, file_name)  
    if os.path.isfile(file_path):  # 确保是文件而不是文件夹  
        total_size += os.path.getsize(file_path)  # 累加文件大小  
print("文件夹中所有文件大小总和为:", total_size, "字节")  # 打印总和大小,单位为字节

场景3:获取目录下所有文件的大小总和(包括子目录)

import os  
  
# 获取目录下所有文件的大小总和(包括子目录)  
folder_path = "/path/to/folder"  
total_size = 0  
for foldername, subfolders, filenames in os.walk(folder_path):  # os.walk()用于遍历文件夹及其子文件夹和文件  
    for filename in filenames:  # 遍历当前文件夹中的所有文件  
        file_path = os.path.join(foldername, filename)  # 构造文件的完整路径  
        total_size += os.path.getsize(file_path)  # 累加文件大小到总大小中  
print("目录下所有文件大小总和为:", total_size, "字节")  # 打印总和大小,单位为字节

11. 列出目录中的文件和子目录os.listdir()

场景1:列出指定目录中的所有【文件】和【子目录】

import os  
  
# 列出指定目录中的所有文件和子目录  
folder_path = "/path/to/folder"  
file_list = os.listdir(folder_path)  
print("遍历文件和子目录列表:")  
for file_name in file_list:  
    print(file_name)

场景2:列出指定目录中所有【子目录】的名称

import os  
  
# 列出指定目录中所有子目录的名称  
folder_path = "/path/to/folder"  
subfolder_list = []  
for file_name in os.listdir(folder_path):  
    if os.path.isdir(os.path.join(folder_path, file_name)):  # 判断是否为文件夹  
        subfolder_list.append(file_name)  
print("子目录列表:")  
for subfolder_name in subfolder_list:  
    print(subfolder_name)

12. 获取文件信息os.stat()

场景1:获取文件的大小

import os  
  
# 获取文件的大小  
file_path = "/path/to/file.txt"  
file_info = os.stat(file_path)  
file_size = file_info.st_size  # 获取文件大小,单位为字节  
print(f"文件大小为:{file_size} 字节")

场景2:获取文件的创建时间

import os  
  
# 获取文件的创建时间  
file_path = "/path/to/file.txt"  
file_info = os.stat(file_path)  
creation_time = file_info.st_ctime  # 获取文件的创建时间  
print(f"文件创建时间为:{creation_time}")

场景3:获取文件的最后修改时间

import os  
  
# 获取文件的修改时间  
file_path = "/path/to/file.txt"  
file_info = os.stat(file_path)  
modify_time = file_info.st_mtime  # 获取文件的最后修改时间  
print(f"文件最后修改时间为:{modify_time}")

13. 判断文件路径是否为绝对路径os.path.isabs()

import os

# 判断文件路径是否为绝对路径
path = '/path/to/file'
is_absolute_path = os.path.isabs(path)  # 是否为绝对路径
print(is_absolute_path)  # 输出 True 或 False,根据路径是否为绝对路径而定

14. 创建文件夹os.makedirs()

import os  
  
# 创建多级目录  
folder_path = "/path/to/parent/folder"  
os.makedirs(folder_path, exist_ok=True)  # 创建多级目录,如果目录已存在,则不报错继续执行  
print(f"目录 {folder_path} 创建成功")

15. 删除文件os.remove()

import os

# 删除文件
path = '/path/to/file.txt'
os.remove(path)  # 删除文件

16. 删除目录os.rmdir()

import os

# 删除文件夹
path = '/path/to/directory'
os.rmdir(path)  # 删除目录

17. 重命名文件或文件夹os.rename()

import os

# 重命名文件或文件夹
old_path = '/path/to/old_name'
new_path = '/path/to/new_name'
os.rename(old_path, new_path)  # 如果是文件则重命名文件,如果是目录则重命名目录

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

import os

# 检查路径是否存在
path = '/path/to/file_or_directory'
exists = os.path.exists(path)  # 如果路径存在则返回 True,否则返回 False
print(exists)  # 输出 True 或 False,根据路径是否存在而定

19. 获取文件扩展名os.path.splitext()

import os

# 获取文件扩展名
path = '/path/to/file.txt'
extension = os.path.splitext(path)[1]  # 分割文件路径并获取扩展名
print(extension)  # 输出扩展名 .txt

结束语

  • 亲爱的读者,感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见,因此在这里鼓励您对我们的博客进行评论。
  • 您的建议和看法对我们来说非常重要,这有助于我们更好地了解您的需求,并提供更高质量的内容和服务。
  • 无论您是喜欢我们的博客还是对其有任何疑问或建议,我们都非常期待您的留言。让我们一起互动,共同进步!谢谢您的支持和参与!
  • 我会坚持不懈地创作,并持续优化博文质量,为您提供更好的阅读体验。

文章来源:https://blog.csdn.net/qq_41813454/article/details/134939331
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。