python脚本目录位置

时间:2014-11-14 10:38:58

标签: python directory

我有一个与python脚本或函数的目录有关的问题。我给出以下示例来说明我的问题:假设现在我们有一个名为build_module.py的python文件,它位于:

C:/a/b/c/d/build_module.py

在这个文件中,我定义了一个名为build_module的函数:

def build_module(par1, par2)
    pwd_original = os.path.dirname(os.path.realpath(__file__)) # first call
    print pwd_original
    os.chdir(pwd_original)
    print os.getcwd()
    pwd_original = os.path.dirname(os.path.realpath(__file__)) #second call
    print pwd_original
    quit()

在我第一次调用pwd_original = os.path.dirname(os.path.realpath(__file__)) # first cal时,我希望返回路径应该是C:/a/b/c/d,因为这是fie所在的文件夹,但是,我得到的是C:/a/b/c 。所以这是我的第一个问题,为什么我无法获取文件的文件夹?如果os.path.dirname(os.path.realpath(__file__))不是我应该调用的正确函数,我应该调用哪种函数?

调用os.chdir后,第二次调用pwd_original = os.path.dirname(os.path.realpath(__file__)) #second call,返回路径变为'C:/ a / b',我期望的是它应该与之前的调用相同。所以发生了什么事?

修改

提到我如何调用该函数的方式。我将使用的脚本位于

C:/a/b/c/d/app/main.py

只是提醒您build_module.py位于C:/a/b/c/d/build_module.py。因此,如果我想调用build_module.py中的函数,我必须在此文件中的导入函数之前添加sys.path.insert(0,"../")

如果我把它们放在同一个文件夹中,那么我就不会有这个问题了。

1 个答案:

答案 0 :(得分:0)

我刚刚复制了你的代码并进行了一些修改并运行了它,它打印了三次脚本文件所在的目录。结果与你的不同。

文件位于D:\ PycharmProjects \ PyDev中,输出为

D:\PycharmProjects\PyDev
D:\PycharmProjects\PyDev
D:\PycharmProjects\PyDev

import os

def build_module(par1, par2):
   pwd_original = os.path.dirname(os.path.realpath(__file__)) # first call
   print(pwd_original)
   os.chdir(pwd_original)
   print(os.getcwd())
   pwd_original = os.path.dirname(os.path.realpath(__file__)) #second call
   print (pwd_original)

build_module(1,2)