2024-09-29 02:24:15 发布
网友
如果我们传递文件名和文件路径,我需要调用不同的功能
前
python test.py test1 (invoke different function) python test.py /home/sai/test1 (invoke different function)
我可以从系统argv[1] 一。但我无法区分文件和文件路径(即它是文件还是文件路径)
您可以使用^{}和^{}:
文件:
>>> os.path.isdir('a.txt') False >>> os.path.isfile('a.txt') True
方向:
这有点棘手,因为文件名也是有效的相对路径,对吧? 你无法区分它。在
另一方面,假设您想区分以斜杠\反斜杠开头的绝对路径或相对路径,则可以使用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.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
或者
您可以使用^{} 和^{} :
文件:
方向:
^{pr2}$这有点棘手,因为文件名也是有效的相对路径,对吧? 你无法区分它。在
另一方面,假设您想区分以斜杠\反斜杠开头的绝对路径或相对路径,则可以使用os.path.isabs(path)。Doc说,它检查路径在Unix上是否以斜杠开头,在切掉一个潜在的驱动器盘符后,Win会出现反冲:
但是,如果相对路径不是以斜线开头,则此操作将失败:
^{pr2}$对于上面提到的所有情况都适用的解决方案是,使用os.path.basename(path)对路径尾部与路径本身进行比较,而不是对有斜杠或没有斜杠的相对路径敏感。如果他们是平等的,那只是一个名字:
你试过了吗
或者
^{pr2}$相关问题 更多 >
编程相关推荐