繁体   English   中英

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

[英]How to run Python script without inputting complete file path

我有一个包含 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终端中FileNotFoundError: [Errno 2] No such file or directory错误,因为我没有完整的文件路径。 允许程序执行的完整文件路径为:

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

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

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


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

试试这个 -

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

您将打印完整路径

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

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

您可以尝试使用内置的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(...) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM