|
|
|
|
 如何知道当前.py脚本程序所在目录? - youwater [ 2005-06-30 19:56 | 72 byte(s)]
 Re: 如何知道当前.py脚本程序所在目录? - youwater [ 2005-06-30 20:49 | 352 byte(s)]
 Re: 如何知道当前.py脚本程序所在目录? - limodou [ 2005-06-30 22:21 | 301 byte(s)]
 Re: 如何知道当前.py脚本程序所在目录? - youwater [ 2005-07-01 09:20 | 184 byte(s)]
 Re: 如何知道当前.py脚本程序所在目录? - limodou [ 2005-07-01 14:27 | 76 byte(s)]
 Re: 如何知道当前.py脚本程序所在目录? - kinghero [ 2006-04-07 12:10 | 195 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
在聊天室里我已经知道了可以用os.getcwd()得到当前脚本所在的目录,现在我用的是mod_python,用os.getcwd()返回的是apache的安装目录,这显然不是我想要的。
本来我也想过用一个配置文件,让用户来指定根目录,这本来也是很多软件的做法,但我想如果程序可以判断自己的位置的话,这就应该由程序员来解决,而不是问题交给用户。哪位能给些提示也好,不胜感激。
|
|
|
----
喜欢Linux的.NET程序员
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
运行一个程序分两种情况,一种是以主程序方式运行,一般是:
python test.py
这时test.py就是命令行的第1个参数,因此可以使用os.path.dirname(sys.argv[0])来得到它的路径。
再有就是test.py可能会以模块的形式导入,这时可以使用 test.__file__来得到它的编译后的文件名,如:c: emp est.pyc。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
问题是我用的是mod_python,用os.path.dirname(sys.argv[0])会出错AttributeError: 'module' object has no attribute 'argv',而我这个模块并不是导入使用的,所以也无法用test.__file__来访问啊。
|
|
|
----
喜欢Linux的.NET程序员
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
從google找到這裡, 也在google找到了答案. 雖然這個題目已經好久. 我也給出方法, 方便后來的人.
在python 的 module里,
os.path.dirname(__file__) 就可以得到當前目錄. mod_python也可以
|
|
|
[Original]
[Print]
[Top]
|
|
|