美文网首页
python中打开相对路径文件

python中打开相对路径文件

作者: yanghedada | 来源:发表于2018-10-02 12:25 被阅读827次

相对路径

相对路径基就是基于当前运行文件(当前的程序,高手都把程序叫做文件)路径进行目录索引。对于test1.txt和test2.txt文件进行读取该怎么做呢。
如下图所示:

.
|--dir1
    |--main.py
    |--dir2
          |--func.py
          |--test1.txt
          |--dir3
                |--test2.txt

test1.txt内容

test1.txt

test2.txt内容

test2.txt

1.若打开func.py文件,文件路径就是dir2目录下,通过func.py读取test1.txt可以用。输入如下语句:
func.py

# func.py

def load_txt(filename ):
    return open(filename, 'r').read()

if __name__ == '__main__':
    filename1 = '/test1.txt'
    data1 = load_txt(filename1 )
    filename2 = '/dir3/test1.txt'
    data2 = load_txt(filename2 )

结果:

test1.txt
test2.txt

上面的代码是可以运行的,这是因为程序py文件比txt2文件目录高1级,和test1目录在同级,所以可以直接在func.py中使用open函数进行读取。
2.如打开main.py文件路径就是dir2目录下,通过main.py调用func.py,再读取test.txt,使用如下代码:
(为什么不直接读取呢?因为自己重新写读取文件有点浪费时间)

# main.py
from dir2 import func

if __name__ == '__main__':
    filename1 = '/test1.txt'
    data1 = load_txt(filename1 )
    filename2 = '/dir3/test1.txt'
    data2 = load_txt(filename2 )

上面的代码是会报错:

FileNotFoundError: [Errno 2] No such file or directory: '/test1.txt'

这是因为open函数'/'和'./'都是代表当前执行文件的路径(main.py),不是调用文件的路径。这里提示的'/test1.txt'是dir1中没有test1.txt文件。那怎么把dir2加到test1.txt文件目录中去呢??
这里介绍一种可以解决这个问题的方法,这是大家公认的可以解决这种问题的方法。修改func.py文件,main.py文件不需要修改,注意文件名前面不要加‘.’。

#func.py
import os
def load_txt(filename ):
    module_path = os.path.dirname(__file__) 
    filename = module_path + filename
    return open(filename, 'r').read()
if __name__ == '__main__':
    filenam1 = '/test1.txt'
    data1 = load_txt(filenam1 )
    print(data1)
    filenam2 = '/dir3/test2.txt'
    data2 = load_txt(filenam2 )
    print(data2)

相当于使用了绝对路径,在'/test1.txt',自动把当前执行文件路径加上了.
执行func.py时

module_path  == '.../dir2'

执行main.py时

module_path  == '.../dir1'

相关文章

  • python中打开相对路径文件

    相对路径 相对路径基就是基于当前运行文件(当前的程序,高手都把程序叫做文件)路径进行目录索引。对于test1.tx...

  • Python-相对路径打开文件

    项目目录 打开同级文件 两种写法:add_remove_findlist.yaml等价于./add_remove_...

  • cocos2dx中的坑(持续更新中)

    1. tmx地块图片文件支持相对路径,但是却没有对..,.此类相对路径符号过滤处理,导致后面android中打开资...

  • Exceptions & Files(四)

    文件的打开与关闭 文件的打开python中打开文件使用open("路径/filename.txt")函数,括号中写...

  • python学习的第二天

    Python文件操作 读取文件内置函数open file='文件的路径"相对路径即可。 “.”是代表当前文件下 ;...

  • Python基础(14)——文件

    open打开文件 参数file用来指定文件的相对路径或绝对路径。参数mode用来指定文件的打开模式 with打开文...

  • python文件open参数属性

    Python文件属性 python打开文件后为什么要关闭 ? 将写缓存同步到磁盘; linux系统中每个进程打开的...

  • #充实自己22#跟着Professor Lei学Python之绝

    绝对路径与相对路径是两个在编程语言中常用到的内容,而且在python中打开文本文件时,经常会用到。 绝对路径是指包...

  • Python 系统、IO、序列化

    注意,python中各种相对路径都相对于项目的工作目录,默认情况下即为项目的启动目录 读写文件 读写文件是最常见的...

  • 笔记

    文件操作路径和模块标识路径问题 文件操作中的相对路径可以省略 ./ 在模快加载中,相对路径中的 ./ 不能省略 在...

网友评论

      本文标题:python中打开相对路径文件

      本文链接:https://www.haomeiwen.com/subject/eenooftx.html