- 此问题在此处已有答案**:
os.makedirs doesn't understand "~" in my path(3个答案)
Tilde (~) isn't working in subprocess.Popen()(4个答案)
三年前关闭了。
我尽量不对配置文件使用绝对路径,因为我需要将其部署在多个环境中,此处的最佳选项是什么
下面的代码是我尝试过的,它不能找到路径,但是我可以在同一个位置查找文件。我在Redhat服务器上使用Python3.6。
with open("~/scripts/config.yml", 'r') as ymlfile:
cfg = yaml.load(ymlfile)
我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '~/scripts/config.yml'
2条答案
按热度按时间ryevplcw1#
首先,
~/path/to/file
始终是一个绝对路径(~
扩展为$HOME
),要在Python中进行这种替换,需要使用os.path.expanduser
,如下所示:kr98yfug2#
您可以使用以下工具:
~
仅在shell中有效,在Python字符串中无效