Python的os.path模块:【文件路径】操作轻松掌握!!!【建议收藏,方便查询】
2023-12-13 04:57:54
目录
- 引言
- os.path模块常用函数
- 1. 获取绝对路径os.path.abspath()
- 2. 拼接路径os.path.join()
- 3. 获取路径中的目录名os.path.dirname()
- 4. 获取路径中的文件名os.path.dirname()
- 5. 判断文件或目录是否存在os.path.exists()
- 6. 判断是否为文件os.path.isfile()
- 7. 判断是否为目录os.path.isdir()
- 8. 获取当前工作目录os.getcwd()
- 9. 改变当前工作目录os.chdir()
- 10. 获取文件大小os.path.getsize()
- 11. 列出目录中的文件和子目录os.listdir()
- 12. 获取文件信息os.stat()
- 13. 判断文件路径是否为绝对路径os.path.isabs()
- 14. 创建文件夹os.makedirs()
- 15. 删除文件os.remove()
- 16. 删除目录os.rmdir()
- 17. 重命名文件或文件夹os.rename()
- 18. 检查路径是否存在os.path.exists()
- 19. 获取文件扩展名os.path.splitext()
- 结束语
引言
在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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!