[英]differentiate between file name and file path
如果我們傳遞文件名和文件路徑,我需要調用其他功能
前
python test.py test1 (invoke different function)
python test.py /home/sai/test1 (invoke different function)
我可以從sys.argv [1]中獲取參數。 但是我無法區分文件和文件路徑。(即是文件還是文件路徑)
這有點棘手,因為文件名也是有效的相對路徑,對嗎? 您無法區分它。
另一方面,假設您想區分以斜杠\\反斜杠開頭的絕對路徑或相對路徑,則可以使用os.path.isabs(path) 。 Doc說,它會檢查路徑是否以Unix上的斜線開頭,並在切掉一個可能的驅動器號后在Win上以反斜線開頭:
>>> import os
>>> os.path.isabs('C:\\folder\\name.txt')
True
>>> os.path.isabs('\\folder\\name.txt')
True
>>> os.path.isabs('name.txt')
False
但是,這將以相對路徑而不是以斜線開頭的方式失敗:
>>> os.path.isabs('folder\\name.txt')
False
適用於上述所有情況的解決方案,對帶有斜線或沒有斜線的相對路徑不敏感,將使用os.path.basename(path)對路徑的尾部與路徑本身進行比較。 如果它們相等,那只是一個名字:
>>> os.path.basename('C:\\folder\\name.txt') == 'C:\\folder\\name.txt'
False
>>> os.path.basename('\\folder\\name.txt') == '\\folder\\name.txt'
False
>>> os.path.basename('folder\\name.txt') == 'folder\\name.txt'
False
>>> os.path.basename('name.txt') == 'name.txt'
True
你試過了嗎
os.path.basename
要么
os.path.dirname
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.