python相对路径找不到文件_Python里使用相对路径的坑
过程
写了个脚本丢服务器里, 每次启动时都要去读取一个cache文件
open('table.cache', 'rb')
然后为脚本设置了一个软连接, 以后用search命名就能使用脚本了
ln -s /home/search.py /usr/bin/search
但是, 启动时却提示未找到cache文件
FileNotFoundError: [Errno 2] No such file or directory: 'table.cache'
我猜测它可能去'/usr/bin/search'里找 'table.cache'了, 于是,
touch /usr/bin/table.cache
但还是提示找不到文件, 最后猜测, 它可能在当前目录找了, 于是我随便切到一个目录里:
cd /tmp/.X11-unix/
touch table.cache
search
这下对了!
Python里写这种相对路径, 是相对于终端的当前目录的.
解决
解决办法是, 获取脚本所在目录, 构造绝对路径:
print('getcwd', os.getcwd())
print('sysargv', sys.argv)
print('realpath', os.path.realpath(sys.argv[0]))
print('realpath.split', os.path.split(os.path.realpath(sys.argv[0]))[0]) # 这是脚本所在目录
print('__file__', __file__)
print('__file__.dir', os.path.dirname(__file__)) # 这也是脚本所在目录
将上诉代码保存在 /home/speng/t.py 里, 然后:
cd /etc/named
python3 /home/speng/t.py
输出:
getcwd /etc/named
sysargv ['/home/speng/t.py']
realpath /home/speng/t.py
realpath.split /home/speng
__file__ /home/speng/t.py
__file__.dir /home/speng
python相对路径找不到文件_Python里使用相对路径的坑相关推荐
- python相对路径找不到文件_Python 解决相对路径问题:No such file or directory
如果你取相对路径不是在主文件里,可能就会有相对路径问题:"No such file or directory". 因为 python 的相对路径,相对的都是主文件. 如下目录结构: ...
- python 绝对路径找不到文件_python获取文件绝对路径解决找不到文件句柄的问题实例(readConfig.py)V1.2...
#coding=utf8 ''' 该模块是用来读取配置文件, 通过正则表达式来获取下载路径和保存路径. 文件初始化时打开文件并读取配置文件信息 主要包括三个函数: getDownPath():用来获取 ...
- python相对路径找不到文件_Python相对路径从子文件夹导入
首先发布到SO,所以如果我错过了一些细节,请原谅我. 有没有办法使用来自另一个子文件夹的相对路径而不需要通过os修改sys.path?最终这将从cgi网络服务器运行,所以我宁愿远离python.exe ...
- python进阶14文件路径(找不到文件)
原创链接:python进阶14文件路径(找不到文件) 开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题. curdir,argv,file 举例: 文件1代码: 1 2 3 4 5 6 ...
- Java之相对路径找不到文件问题解决方法
Java之相对路径找不到文件问题解决方法 参考文章: (1)Java之相对路径找不到文件问题解决方法 (2)https://www.cnblogs.com/gongxr/p/8862155.html ...
- python的os为啥找不到文件_python使用os.listdir和os.walk获得文件的路径
情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir 在我们的桌面上有一个file目录(文件夹),里面有三个文件 file(dir)| --|test1.txt --|te ...
- python open可以打开什么类型文件_Python打开文件open()的注意事项
原博文 2018-02-28 10:51 − 刚刚用open(fileName)来打开txt格式的文件,总是出现错误,总是找不到文件读取的内容,后来才发现是open()在使用过程中自动关闭了.这里介绍 ...
- python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法
使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...
- python删除指定天数前的文件_python 删除指定时间间隔之前的文件实例
遍历指定文件夹下的文件,根据文件后缀名,获取指定类型的文件列表:根据文件列表里的文件路径,逐个获取文件属性里的"修改时间",如果"修改时间"与"系统当 ...
最新文章
- 死里逃生!国足2:1逆转泰国队晋级亚洲杯八强
- 由system.currentTimeMillis() 获得当前的时间
- 没有搜索_没有明显足够搜索量关键词的类目产品应该怎么办?
- java导出word(带图片)
- java的虚拟机不支持在鲲鹏上_屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!...
- Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
- 【渝粤教育】国家开放大学2018年春季 0177-21T电机学(二) 参考试题
- Teleport Ultra 抓包工具
- Gmuplolader1.0正式上线,欢迎试用!!!
- 售价150万的“AI老婆”,上市仅1小时就被抢光
- 面试中被问到HashMap的结构,1.7和1.8有哪些区别?这篇做深入分析!
- elementui表格复制_vue+element-ui做表格的导出功能(一)。
- 1×1的卷积核在卷积层的作用----网络中的网络
- 【Keras】LSTM和Bi-LSTM神经网络
- 微信H5分享钉钉分享设置方法
- JAVA ANDROID电脑开发环境配置,说多了都是泪
- ppoe拨号被远程计算机终止,Windows各操作系统常见PPPoE拨号错误代码说明
- (学习笔记)JAVA开发需要掌握哪些技术?
- Java正则表达式通过User-Agent获取IOS版本
- 关于NetBios的简单应用