国外设计网站app吗,网站开发一个支付功能要好多钱,个人做网站流程图,做网站的北京路径管理 问题相对路径问题绝对路径问题 解决os库pathlib库最终解决 问题 环境#xff1a;python3.7.16 win10 相对路径问题
因为python的执行特殊性#xff0c;使用相对路径时#xff0c;在不同路径下用python指令会有不同的索引效果#xff08;python的项目根目录根据执… 路径管理 问题相对路径问题绝对路径问题 解决os库pathlib库最终解决 问题 环境python3.7.16 win10 相对路径问题
因为python的执行特殊性使用相对路径时在不同路径下用python指令会有不同的索引效果python的项目根目录根据执行python语句时像是其他项目因为有包管理工具vue-cli或webpack会固定项目根目录所以最好规定执行项目路径。
绝对路径问题
使用绝对路径时项目移动时索引基本会发生错误因为项目的路径变化了。
解决
因此最好使用绝对路径相对路径组合的形式。只要我规定文件内路径按照项目路径来写相对路径并通过绝对路径计算出当前项目路径将两者加以组合那么无论项目如何移动路径索引都没问题了。
os库
import os# 绝对路径
absolute_path os.path.abspath(__file__)
# 相对路径
relative_path ..\data\历史时间序列表.csv
# 连接路径
combined_path os.path.join(absolute_path, relative_path) print(absolute_path, relative_path)
print(combined_path) 很明显出现拼接错误os.path.join函数只能将’s:\path’与’data.csv’组合即在两个字符串中间简单加个’\并不能正确解析双点‘..’的意义因此这个方法不行。
pathlib库
from pathlib import Path # 相对路径
relative_path Path(..\data\历史时间序列表.csv) # 获取绝对路径
absolute_path relative_path.resolve() print(relative_path)
print(absolute_path)一样会根据python语句的执行目录发生变化因此这个方法也不行。
最终解决
os库藏了一个很鸡贼的方法os.path.normpath(path)并且无论你是问chat-gpt还是自己搜索相关问题都不会给出这个函数。
import os# 绝对路径
absolute_path os.path.abspath(__file__)
# 相对路径
relative_path ..\data\历史时间序列表.csv
# 先将当前文件的绝对路径的目录和相对路径拼接然后使用normpath进行路径规范化
combined_path os.path.normpath(os.path.join(os.path.dirname(absolute_path), relative_path)) print(absolute_path, relative_path)
print(combined_path)