Python中的相对文件路径的调用

作者: monitor1379 | 来源:发表于2016-09-13 19:23 被阅读9305次

前言

先让我们来看看一个用到相对文件路径的函数调用的问题。假设现在有两个脚本文件main.pyfunc.py,他们的路径关系是:

.
|--dir1
    |--main.py
    |--dir2
          |--func.py
          |--test.txt

func.py的作用是提供load_txt()函数,读取同级目录test.txt文件中的内容并返回。

# func.py

def load_txt()
    filename = './test.txt'
    return open(filenamem, 'r').read()

假设现在在main.py中调用load_txt()函数:

# main.py
from dir2 import func
 
if __name__ == '__main__':
    print func.load_txt()

这个时候会报类似找不到文件test.txt的错误。

为什么会这样呢?这是因为在函数调用的过程中,当前路径.代表的是被执行的脚本文件的所在路径。在这个情况中,.表示的就是main.py的所在路径,所以load_txt()函数会在dir1文件夹中寻找test.txt文件。

那么怎么样才能在函数调用的过程中保持相对路径的不变呢?

方法

在网上有相当多的教程都有提到这个Python中相对文件路径的问题,但是大部分都没有提及到在这种情况下的解决办法。

在以下的三个函数中,第一个和第二个是大部分教程中的解决办法,但是这样是错误的,因为第一个和第二个函数所获取的"当前文件路径"都是被执行的脚本文件的所在路径,只有第三个函数返回的当前文件路径才是真正的、该函数所在的脚本文件的所在路径

def get_cur_path1():
    import os
    return os.path.abspath(os.curdir)

def get_cur_path2():
    import sys
    return sys.argv[0]

def get_cur_path3():
    import os
    return os.path.dirname(__file__)

因此,解决办法如下。修改func.py中的读取函数如下即可:

# func.py

import os

def load_txt()
    module_path = os.path.dirname(__file__)    
    filename = modelu_path + '/test.txt'
    return open(filenamem, 'r').read()

相关文章

  • Python中的相对文件路径的调用

    前言 先让我们来看看一个用到相对文件路径的函数调用的问题。假设现在有两个脚本文件main.py和func.py,他...

  • python学习的第二天

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

  • Python调用7zip命令实现文件批量解压

    Python调用7zip命令实现文件批量解压 1.输入压缩文件所在的路径 2.可以在代码中修改解压到的文件路径和所...

  • 笔记

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

  • JAVA,JSP,Servlet获取当前工程路径-绝对路径

    在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是W...

  • Python 系统、IO、序列化

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

  • python导入模块的问题

    python导入模块时查找模块路径方法有相对路径和绝对路径两种,相对路径在只有项目中只包含py文件和默认文件夹时可...

  • 相对路径和绝对路径

    Linux教程 相对路径和绝对路径 文件路径 文件路径:文件的路径是描述文件在系统中的位置Linux使用正斜线(/...

  • python中打开相对路径文件

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

  • Python3 & 如何在Python中写文件路径

    Python中文件路径共分为两种:绝对路径和相对路径1、绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符...

网友评论

    本文标题:Python中的相对文件路径的调用

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