如何在不输入完整文件路径的情况下运行 Python 脚本

时间:2021-06-26 08:09:55

标签: python file find

我有一个包含 2 项元组、产品类型和头文件路径的列表:

TypeList = [("Bed bot", "src/robot/Version/Bed/rev.h"),
               ("Tow bot", "src/robot/Version/Tow/rev.h"),   
               ("Con bot", "src/robot/Version/Con/rev.h")
              ]

当我执行我的完整程序时,我在终端中遇到常见的 FileNotFoundError: [Errno 2] No such file or directory 错误,因为我没有完整的文件路径。允许程序执行的完整文件路径为:

/home/tinker1@wc.com/src/robot/Version/Bed/rev.h

但是,当脚本运行时,我不希望用户必须输入以 /home/tinker1@wc.com 开头的路径,因为这是个人信息。有没有办法让脚本像我指定的完整路径一样运行?

4 个答案:

答案 0 :(得分:1)

使用相对路径+在变量中保存要隐藏变量的内容


parent_dir = path.dirname(path.abspath(__file__))
with open(path.join(parent_dir, 'path', 'file.txt')) as fh:
    ...```

答案 1 :(得分:0)

试试这个 -

for product,path in TypeList:
    path = '/home/tinker1@wc.com' + path
    print(path)

您将打印完整路径

答案 2 :(得分:0)

使用 os 模块获取用户的主目录。 然后加入你的道路。

from os.path import expanduser, join
home = expanduser("~")
join(home, your_path)

答案 3 :(得分:0)

您可以尝试使用内置的 pathlib.Path 类。您只需要在路径前加上 ~ 前缀,将它们包装到 pathlib.Path 对象中,然后调用 .expanduser() 方法。

from pathlib import Path
path = Path('~/src/robot/Version/Bed/rev.h').expanduser()

或者,您可以只构建一次主路径,然后只需使用 / 运算符将主路径与您的相对路径连接起来。

from pathlib import Path
home = Path('~').expanduser()
path = home / 'src/robot/Version/Bed/rev.h'

然后,您可以将路径对象转换回其字符串表示形式,也可以按原样使用它(例如,您可以直接使用它来使用 open(...) 打开文件)。

相关问题