Pau*_*ter 17 python directory django file
我想用Django应用程序打开一个文件open().问题是,open()似乎使用我运行runserver命令的任何目录作为根.
例如,如果我从这样一个名为foo的目录运行服务器
$pwd
/Users/foo
$python myapp/manage.py runserver
Run Code Online (Sandbox Code Playgroud)
open()使用foo作为根目录.
如果我这样做
$cd myapp
$pwd
/Users/foo/myapp
$python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
myapp 将是根.
假设我的文件夹结构如下所示
foo/myapp/anotherapp
Run Code Online (Sandbox Code Playgroud)
我希望能够打开一个位于foo/myapp/anotherapp脚本的文件,该脚本也foo/myapp/anotherapp只是通过说
file = open('./baz.txt')
Run Code Online (Sandbox Code Playgroud)
现在,根据我运行服务器的位置,我不得不说
file = open('./myapp/anotherapp/baz.txt')
Run Code Online (Sandbox Code Playgroud)
要么
file = open('./anotherapp/baz.txt')
Run Code Online (Sandbox Code Playgroud)
Tad*_*eck 38
已经在Favorite Django Tips&Tricks问题中描述了该解决方案.解决方案如下:
import os
module_dir = os.path.dirname(__file__) # get current directory
file_path = os.path.join(module_dir, 'baz.txt')
Run Code Online (Sandbox Code Playgroud)
这正是你提到的.
PS.请不要覆盖file变量,它是内置的一个.
| 归档时间: |
|
| 查看次数: |
22578 次 |
| 最近记录: |