2017-05-08 86 views
0

對於這個問題的簡單性,我表示歉意。我正在學習使用python進行編程,而我最近的任務是學習如何使用文件。不幸的是,我似乎無法正確構造一條路徑語句來打開特定的文件。爲了讓事情變得更有趣,我是bi-OS-usal。我在MacOS和Windows上工作。什麼是Windows上文件的根路徑?在MacOS上?

我使用「OS」模塊中的蟒蛇生成要麼OS上運行的操作系統特定的路徑試過,但我繼續得到FileNotFoundError。這是我在Mac上試過的。請注意,該文件的路徑位於我的目錄toddb下的用戶文件夾中的主驅動器(Macintosh HD)上。文件名是st.txt

import os 
path = os.path.join("Users", "toddb", "st.txt") 
stlaunch = open(path, "r") 

在這一點上,我得到:

FileNotFoundError: [Errno 2] No such file or directory: 

因爲我沒有明確規定的根驅動器我也試過:

path = os.path.join("Macintosh HD", "Users", "toddb", "st.txt") 

同樣的錯誤,當我運行我的代碼。

回答

0

根目錄名爲/。把它放在開頭:

path = os.path.join("/", "Users", "toddb", "st.txt") 
2

OSX有一個叫做/的根。 Windows有多個根(驅動器),例如,C:\\。在python中,你可以像C:/那樣引用帶有正斜槓的窗口路徑。

在這兩種情況下,即使用戶目錄有一個默認的位置,他們可以移動,使得任何硬性規則困難。這些操作系統通常將主目錄放入環境變量中,您可以將它們縫合在一起以找到您的家。

的Python也有os.path.expanduser功能,做繁重的你。 expanduser('~')展開當前用戶的主目錄,`expanduser('〜otheruser')獲取其他目錄。把它放在一起,你可以做

path = os.path.join(os.path.expanduser('~'), "st.txt") 
+0

內部,Windows還具有一個''\''根,但對物體的命名空間而不是文件系統。它是由系統和驅動程序而不是用戶使用的。它有一些固定的目錄和對象名稱以及大量自動編號和GUID名稱。常見的設備名稱是符號鏈接,例如「C:」驅動器是'\ Global ?? \ C:'=>'\ Device \ HarddiskVolume [N]',其中[N]可以是任何數字,但通常爲1或2,HKLM註冊表配置單元爲' \註冊\ Machine'。 – eryksun

+0

感謝您的支持!很有幫助。不幸的是,我仍然收到文件未找到錯誤。這裏是我的最新版本: 'code' >>> path = os.path.join(os.path.expanduser(「〜」),「Python.txt」) >>> path 'C:\\ Users \ \ Todd \\ OneDrive \\ Documents \\ Python \\ Python.txt' >>> stlaunch = open(path,「r」) 回溯(最近一次調用最後一次): 文件「」,第1行,in stlaunch =開放(路徑, 「R」) FileNotFoundError:[錯誤2]沒有這樣的文件或目錄: 'C:\\用戶\\託德\\ Python.txt' – Boringo

相關問題