[英]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.