2012-02-21 209 views
3
current_working_directory = os.getcwd() 
relative_directory_of_interest = os.path.join(current_working_directory,"../code/framework/zwave/metadata/") 

files = [f for f in os.listdir(relative_directory_of_interest) if os.path.isfile(os.path.join(relative_directory_of_interest,f))] 

for f in files: 
    print(os.path.join(relative_directory_of_interest,f)) 

輸出:Python - 任何將相對路徑轉換爲絕對路徑的方法?

/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/bar.xml 
/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/baz.xml 
/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/foo.xml 

這些文件路徑正常工作,但我的一部分希望看到這些是絕對路徑(沒有任何../ - 我不知道爲什麼我不在乎,也許我米強迫症,我想我還發現它在記錄更容易看到的絕對路徑。是不是有什麼內置了標準的Python庫(我是3.2),可以把這些變成絕對路徑?沒什麼大不了的,如果不是,而是一點點只有谷歌搜索打開了第三部分的解決方案

編輯:看來我要什麼什麼os.path.abspath則(文件)),所以修改後的源可能上面現在看起來喜歡(不,我沒有測試這一點,它只是即興):

current_working_directory = os.getcwd() 
relative_directory_of_interest = os.path.join(current_working_directory,"../code/framework/zwave/metadata/") 

files = [f for f in os.listdir(relative_directory_of_interest) if os.path.isfile(os.path.join(relative_directory_of_interest,f))] 

for f in files: 
    print(os.path.abspath(f)) 

輸出:

/用戶/ 2Gig /開發/ feature_dev /腳本/ ZWave_custom_cmd_classes(08262010).XML /用戶/ 2Gig /開發/ feature_dev /腳本/ ZWave_custom_cmd_classes(09262010).XML /用戶/ 2Gig /開發/ feature_dev /腳本/ ZWave_custom_cmd_classes(09262011).XML

+0

[如何獲取Python中的絕對文件路徑]可能的重複(https://stackoverflow.com/questions/51520/how-to-get-an-absolute-file-path-in-python) – 2017-07-14 13:20:29

回答

10

請注意,你的路已經是絕對的 - 他們從/開始。他們不是標準化,雖然,它可以與os.path.normpath()完成。

+1

謝謝。我可能並不清楚自己在問什麼,但是讀了關於normpath()的消息後,讓我看到了abspath(),這顯然是我真正追求的。再次感謝。 – 2012-02-21 04:35:23