获取当前脚本目录路径问题汇总
20211223
https://blog.csdn.net/qq_43178297/article/details/88053836
获取上一层目录
import osprint('***获取当前目录***')
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))print('***获取上级目录***')
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))print('***获取上上级目录***')
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))
import os
import os.path
from pathlib import Path
sys = platform.system()
if sys == "Windows":PATH = os.path.abspath(str(Path('').absolute())) + '/'
else:PATH = '/data/engine-company-name-match/'
target_path = PATH + '/log'if os.path.exists(target_path):passelse:os.mkdir(target_path)
判断目录是否存在,如果不存在则新建
20210811
for name in os.listdir('./'):if name==self.cookie_file:os.remove('./'+str(self.cookie_file))
windows获取当前路径 './'
20210725
相对路径 以当前根目录为基准
20210618
import osbase_dir=os.path.dirname(__file__)
最近的source 路径
20210601
import os
from pathlib import Path
fpath=os.path.abspath(str(Path('.').absolute()))
aa=os.path.join(fpath, 'config.yml')
重点
20210323
当前磁盘分区的根目录 比如 C:\
20210129
直接就是与当前目录平级
import pathpath_=os.path.split(os.path.realpath(path.__file__))[0]path文件为字节防止的空文件
base_path=os.path.abspath(os.path.join(os.getcwd(),"../..")) #后面的两对点号 相当于回退了两层通过此方法获取当前路径 只有在控制台转到这个当前目录才行
os.getcwd():仅仅获得程序运行的当前目录所在位置(如果你在a目录下执行某脚本,无论脚本调用了那些,返回的目录仍然是a)
sys.argv[0] = sys.path[0]
要获得当前执行的脚本的所在目录位置。实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事,因为Python会自动把sys.argv[0]加入sys.path。
具体来说,如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出C:\test,sys.path[0]会输出C:\test\getpath。
更特别地,如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化:
如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出C:\test\getpath\libarary.zip;
如果在setup.py里面指定zipfile=None参数,依赖库就会被打包到exe文件里面,那么sys.path[0]会输出C:\test\getpath\getpath.exe。
2. 正确的方法
但以上这些其实都不是脚本文件所在目录的位置。
比如C:\test目录下还有一个名为sub的目录;C:\test目录下有getpath.py,sub目录下有 sub_path.py,getpath.py调用sub_path.py;我们在C:\test下执行getpath.py。如果我们在 sub_path.py里面使用sys.path[0],那么其实得到的是getpath.py所在的目录路径C:\test,因为Python虚拟机是从getpath.py开始执行的。如果想得到sub_path.py的路径,那么得这样:
os.path.split(os.path.realpath(__file__))[0]
其中file虽然是所在.py文件的完整路径,但是这个变量有时候返回相对路径,有时候返回绝对路径,因此还要用os.path.realpath()函数来处理一下。也即在这个例子里,os.path.realpath(__file__)输出是C:\test\sub\sub_path.py,而os.path.split(os.path.realpath(__file__))[0]输出才是C:\test\sub。
3. 实例说明
总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和file的区别是这样的:
假设目录结构是:
复制代码 代码如下:
C:test
|-getpath
|-path.py
|-sub
|-sub_path.py
然后我们在C:\test下面执行python getpath/path.py,这时sub_path.py里面与各种用法对应的值其实是:
os.getcwd() “C:\test”,取的是起始执行目录
sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录
os.path.split(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是file所在文件sub_path.py的所在目录
http://www.taodudu.cc/news/show-63910.html
相关文章:
- detach detach_ pytorch
- NLLLoss CrossEntropyLoss Pytorch
- array.array python yhzf
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- lightgbm保存模型参数
- numpy 随机数
- lightgbm 决策树 可视化 graphviz
- 数组的拼接合并 numpy
- tensor和模型 保存与加载 PyTorch
- 矩阵乘法的性能提升 AutoKernel
- sklearn数据处理_one_hot
- 一维卷积网络多分类
- tensor转换 pytorch tensorflow
- API pytorch tensorflow
- python 虚拟环境 tensorflow GPU
- 垃圾回收 内存管理 python
- tensorflow 1.x Saver(保存与加载模型) 预测
- 模型部署web发布
- 利用pandas读写HDF5文件
- 文件流处理流式处理大数据处理
- 多分类 数据不平衡的处理 lightgbm
- 样本不平衡不均衡数据处理
- EdgeBERT:极限压缩bert
- java转python
- linux各种模式切换
- 假设检验_python 重点
- 机器学习常用术语词汇表
- mysql engine innodb myisam 区别
- 格式化_icecream_python
- 数据类型对应的字节数
获取当前脚本目录路径问题汇总相关推荐
- php获取上传文件的临时位置,PHP如何获取临时文件的目录路径
PHP获取临时文件的目录路径,可以通过tempnam()和sys_get_temp_dir()函数来实现. 下面我们结合简单的代码示例,给大家介绍PHP获取临时文件的目录路径的方法. 代码示例如下:& ...
- 如何使用Node.js获取当前脚本的路径?
我如何获得Node.js中脚本的路径? 我知道有process.cwd ,但这只是指调用脚本的目录,而不是脚本本身. 例如,假设我在/home/kyle/运行以下命令: node /home/kyle ...
- Python获取当前脚本绝对路径
Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题.感觉是当前工作目录变成了导入py文件当前目录.如果你有配置文件的读取操作,然后都放在一个p ...
- [spring]maven项目中获取resources资源目录路径
项目的资源目录路径如下: package com.zzj.spring.boot.util; import java.io.*; import java.util.Properties; public ...
- python2.7获取当前脚本目录
本文实例讲述了Python获取运行目录与当前脚本目录的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 import os import ...
- Android 文件外/内部存储的获取各种存储目录路径
前言 对于任何一个应用来说,无论是PC端应用还是Android应用,存储肯定是必不可少的.对于很多做Android开发的同学来说,可能认为文件存储很简单,调用一些诸如getFilesDir,getEx ...
- 转--Android 文件外/内部存储的获取各种存储目录路径
前言 对于任何一个应用来说,无论是PC端应用还是Android应用,存储肯定是必不可少的.对于很多做Android开发的同学来说,可能认为文件存储很简单,调用一些诸如getFilesDir,getEx ...
- php获取上级绝对目录路径
echo __FILE__ ; // 获取当前所在文件的绝对路径及地址,结果:D:\aaa\my.php echo dirname(__FILE__); // 取得当前文件所在的绝对目录,结果:D:\ ...
- python获取当前脚本所在路径并在此基础上创建新的文件路径
代码 运行
最新文章
- CVPR 2020夜间行人检测挑战赛两冠一亚:DeepBlueAI团队获胜方案解读
- 云从科技上交大提出DCMN+ 模型,在多项阅读理解数据集上成绩领先
- python脚本实例手机端-python链接手机用Python实现命令行闹钟脚本实例
- SQL点点滴滴_UPDATE小计
- python图片二进制流转换成图片_python将图片二进制数据转换成Django file对象
- ssh中添加隧道,访问目标机器上的地址
- 目标检测特殊层:ROI Align层详解
- 算法导论——排序算法
- iOS开发总结(A0)- MultipeerConnectivity
- mysql_fetch_row()获取显示数据
- 关于ESD的一些知识
- QT 打开PDF文件或图片文件
- 聚合支付公司利楚扫呗获得腾讯、蚂蚁亿元入股
- onap桂林版部署教程
- 万语千言,不敌一纸情书
- 最大熵模型的特征函数及约束条件
- 文件大小单位Bytes, KB, MB, GB, TB, PB等及换算关系,英语怎么说?
- macOS安装homebrew cask 问题解决办法
- 华硕编程竞赛11月JAVA专场 G题飞行棋 题解
- 微信内浏览器不支持下载APK文件的解决方案 微信中点击链接调用外部浏览器打开