[英]BASE_DIR outputs correct using print, but in a variable it just outputs C:
如果我在base_dir = settings.BASE_DIR
上使用print, base_dir = settings.BASE_DIR
正确输出所有内容。 但是,当我使用此变量使用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
更改'/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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.