![](/img/trans.png)
[英]How to run a simple Python script without writing a complete Dockerfile?
[英]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.