【问题标题】:Get full path of argument [duplicate]获取参数的完整路径[重复]
【发布时间】:2017-04-17 01:31:39
【问题描述】:

如何编写一个接受文件作为参数并打印其完整路径的 Python 脚本?

例如

~/.bin/python$ ls
./        ../        fileFinder.py        test.md
~/.bin/python$ py fileFinder.py test.md
/Users/theonlygusti/.bin/python/test.md
~/.bin/python$ py fileFinder.py /Users/theonlygusti/Documents/Online/theonlygusti.github.io/index.html
/Users/theonlygusti/Documents/Online/theonlygusti.github.io/index.html

因此,它应该找到相对文件的绝对路径test.md,以及通过绝对路径/Users/theonlygusti/Downloads/example.txt 给出的文件的绝对路径。

如何制作像上面这样的脚本?

【问题讨论】:

  • 鉴于不同目录中可能有多个文件具有相同的基本名称,因此您不能这样做。您所能做的就是遍历每个驱动器上的每个目录,并为找到的具有匹配基本名称的每个文件生成目录路径。
  • os.path.abspath 可以解决问题...
  • @TigerhawkT3 你错了,没有意义
  • 好吧,更清楚地解释您期望什么样的输入和输出。
  • @mgilson - 要么需要是当前目录作为基本名称,要么是为绝对路径传递的任何绝对目录。

标签: python file directory


【解决方案1】:

好的,我找到了答案:

import os
import sys

relative_path = sys.argv[1]

if os.path.exists(relative_path):
    print(os.path.abspath(relative_path))
else:
    print("Cannot find " + relative_path)
    exit(1)

【讨论】:

  • elif 似乎是多余的,因为os.path.exists 可以使用相对路径或绝对路径。看起来您只是想查找给定文件是否存在。
  • @TigerhawkT3 哦,我不知道。谢谢,看来我可以更新答案了。
猜你喜欢
  • 2018-10-24
  • 1970-01-01
  • 2017-03-16
  • 2012-07-13
  • 2015-07-21
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多