Python相关的路径知识
在很多程序里,很少使用相对路径,更多会使用绝对路径。使用绝对路径的时候不能写死,因为代码拷贝给别人的时候,计算机里没有这个路径,就会出现问题。
所以要用python内置功能,自动构造出一个绝对的路径,方便用于各个系统的运行。
那么具体如何实现呢?
import os
# 1.通过os获取当前py脚本所在路径
abs = os.path.abspath(__file__)
print(abs)
# E:\python项目目录\day08\路径相关\p1.py
import os
# 1.通过os获取当前py脚本所在路径
abs = os.path.abspath(__file__)
# 2.py脚本文件的上一级目录
path = os.path.dirname(abs)
print(path)
# E:\python项目目录\day08\路径相关
import os
"""
# 1.通过os获取当前py脚本所在路径
abs = os.path.abspath(__file__)
# 2.py脚本文件的上一级目录
path = os.path.dirname(abs)
print(path)
"""
base_dir = os.path.dirname(os.path.abspath(__file__)) # 获取到根目录
file_path = os.path.join(base_dir, "files", "info.txt") # 根据系统不同形成不同的路径形式
if os.path.exists(file_path):
file_object = open(file_path, mode="r", encoding="utf-8")
data = file_object.read()
file_object.close()
print(data)
else:
print("文件路径不存在")
路径相关的功能
- 获取当前脚本的绝对路径
abs_path = os.path.abspath(__file__)
- 获取当前路径的上级目录
base_path = os.path.dirname(os.path.abspath(__file__))
- 路径拼接
p1 = os.path.join(base_path, 'xx')
- 判断路径是否存在
exists = os.path.exists(p1)
- 创建文件夹
os.makedirs(路径)
- 判断是否是文件夹
is_dir = os.path.isdir(file_path)
- 删除文件或文件夹
shutil.retree(路径) 使用前要导入shutil模块 importshutil
- 拷贝问文件夹
shutil.copytree("要拷贝的文件夹路径","拷贝到的文件夹的路径")
- 拷贝文件
shutil.copy("原文件路径","拷贝文件路径")
- 文件或文件夹重命名
shutil.move("原文件","移动到(重命名)新文件")