iT邦幫忙

0

os.path模組中,絕對路徑與實際的路徑並不相同

  • 分享至 

  • xImage

大家好,目前小弟正在研討關於os.path這款模組
但小弟這邊測試發現,經過os.path.abspath或os.path.realpath找到的路徑都與實際的路徑不同,想請教大家如何解決這個問題

(由於後續還有使用getsize確認上述的兩個路徑都找不到檔案,而自己編寫的則有找到)


import os.path as path
cur_path = path.dirname(__file__)
print("現在路徑:"+ cur_path)
<!-- print出 現在路徑:e:\python_text\test --!>

file2 = "E:/python_text/test/test.py"
<!-- 實際的絕對路徑 --!>
file1 = path.realpath("test.py")

print("test.py完整路徑:" + file1)
<!-- print出 test.py完整路徑:E:\python_text\test.py --!>

print("檔案大小為:{}".format(path.getsize(file1)))
<!-- 系統提示找不到路徑 --!>
print("檔案大小為:{}".format(path.getsize(file2)))
<!-- print出 檔案大小為:1713 --!>
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
froce
iT邦大師 1 級 ‧ 2022-12-30 23:57:07
最佳解答

你沒搞懂當前所在目錄(working directory)和檔案位置有何區別。
我猜你的終端機應該是這樣:

E:\python_text> python ./test/test.py

path.realpath根據的是當前所在目錄。也就是終端機前面的那個位置。
__file__則是根據執行的檔案位置。

你可以用 os.getcwd() 取得當前所在目錄

恩是的,的確對於這部分並沒有搞懂Orz感謝補充,後續也有找到為什麼會print出找不到檔案的錯誤了!!感謝您

0
re.Zero
iT邦研究生 5 級 ‧ 2022-12-30 19:33:58

你還是用:

print("file1:" + file1)
print("file2:" + file2)

確認你存入的是啥東西,看結果會比較清楚……
(我實在不懂你要幹嘛,註解竟然用 html 形式的……這有點屌……)

註解是因為使用markdown所以將print出的結果改為用html的註解來呈現,另外自己後續有找到問題了,好像是因為test.py本身自己正在編輯中,後續改為任何一個txt檔就好了

我要發表回答

立即登入回答