BASE_DIR使用print输出正确,但在变量中仅输出C:

时间:2018-11-30 02:26:34

标签: python django

如果我在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

1 个答案:

答案 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'