如果我在base_dir = settings.BASE_DIR
上使用print,它将正确输出所有内容。但是,当我使用此变量通过os.path.join
创建新变量时,它仅输出C:
打印示例:
C:\Users\me\Google Drive\gitlab\rootfolder
仅输出C:
并在其后显示正确路径的代码示例。
blendfile = os.path.join(base_dir, '/var/media', userpathname, newest).replace("\\", "/")
结果为:
C:/var/media/userpathname/newest
答案 0 :(得分:1)
在 '/var/media'
功能中将 var/media'
更改为 join
,即删除 前一个斜杠 。
因此代码应该是
blendfile = os.path.join(base_dir, 'var/media', userpathname, newest).replace("\\", "/")
示例
In [16]: import os
In [17]: BASE = "Users\me\Google Drive\gitlab\rootfolder"
In [18]: append_path__1 = "/var/media" # with preceeding slash
In [19]: append_path__2 = "var/media" # without preceeding slash
In [20]: os.path.join(BASE,append_path__1)
Out[20]: '/var/media'
In [21]: os.path.join(BASE,append_path__2)
Out[21]: 'Users\\me\\Google Drive\\gitlab\rootfolder/var/media'