簡體   English   中英

python腳本目錄位置

[英]python script directory location

我有一個與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因為這是文件夾那個國際劍聯位於,但是我得到的是C:/a/b/c 所以這是我的第一個問題,為什么我無法獲得文件的文件夾? 如果os.path.dirname(os.path.realpath(__file__))不是我應該調用的正確函數,那么我應該調用哪種函數?

在調用os.chdir ,第二次調用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,"../")

如果將它們放在同一文件夾中,則不會有此問題。

我只是復制了您的代碼並進行了一些更正並運行了它,並且在腳本文件所在的目錄中打印了三遍。因此結果與您的不同。

文件位於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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM