2017-06-14 54 views
0

我在當前目錄下有一個名爲sub/code.py的python腳本。 sub目錄具有其他腳本和__init__.py,因此它充當一個包。sys.path和os.getcwd()意見不一致?

從我的當前目錄:

python -i sub/code.py 
>>> import sys 
>>> sys.path[0] 
'/home/name/folder/current_directory/sub' 
>>> import os 
>>> os.getcwd() 
'/home/name/folder/current_directory' 
>>> 

是否os.getcwd()sys.path[0]應該以這種方式來反對?據我瞭解,他們都應該參考當前目錄,但在這種情況下,只有os.getcwd()

回答

0

根據我的經驗,sys.path[0]是一個空字符串,其值爲當前目錄。

您的sub模塊中有代碼可能會操縱sys.path

+0

絕對不是,'sys'甚至沒有導入。 – CannedSpinach

0

這並沒有真正回答OP的問題。

我發現Mac OSX上os.getcwd()的行爲與它的行爲不同,在PHP中。

test_getcwd.py:

from os import getcwd 
print (getcwd()) 

輸出當前用戶路徑,而不是在運行腳本的路徑:其中,/用戶/ michag等於〜,這顯然是相同

Michaels-MacBook-Air:~ michag$ python3 /Users/michag/Documents/aaa_raspbian/ddpos_ddpi_3/boot/test_getcwd.py 
/Users/michag