2011-04-02 177 views
1

(上WindowsXP的Python2.7-3.2) 我曾經使用sys.arg [0],但我現在從批處理腳本執行它(用於確定用戶是否具有蟒)有沒有辦法告訴你的python文件在哪裏?

感謝^^

〜PS:建議如果你知道一個更好的方法來找出用戶是否有Python的

+0

嗯?如果你正在運行一個Python腳本,那麼顯然用戶有Python! – 2011-04-02 22:56:08

回答

7

也許你正在尋找

os.path.dirname(__file__) 
+0

非常感謝您的先生! – Property404 2011-04-02 20:18:15

1

可以讀取變量__file__找出路徑當前的Python fi被解釋。

+2

它是'__file__',而不是'__FILE__'。 – 2011-04-02 20:25:45

+0

你是對的,我偶然混淆了C++的。 :) – Amber 2011-04-02 23:35:57

0
os.path.normpath(os.path.abspath(os.path.dirname(__file__))) 
0

,你可以看看這個帖子,檢查註冊表

batch file to check if Python is installed

似乎容易,因爲:

REG查詢 「HKCU \ SOFTWARE \的Python 2.6」

另一種方法是檢查%PATH%。我不知道如何做到這一點,因爲沒有安裝的窗口來測試它:)

嘗試瞭解更多關於「reg query」以及如何搜索%PATH%的可執行文件!

祝你好運!

+0

這不回答被問到的問題。 – 2011-04-02 21:26:58

+0

不,但它回答了我問到的PS問題,Bryan。謝謝你,奧比。但是你知道如何爲python3做?它似乎列表中的Python2 reg註冊查詢「hkcu \軟件」 – Property404 2011-04-02 21:38:10

0

爲了增加這一點,儘管它已經回答了,這裏是我從該網站得到了(不記得源)

import os, sys 
print "CWD: ", os.getcwd() 
print "Script: ", sys.argv[0] 
print ".EXE: ", os.path.dirname(sys.executable) 
print "Script dir: ", os.path.realpath(os.path.dirname(sys.argv[0])) 
pathname, scriptname = os.path.split(sys.argv[0]) 
print "Relative script dir: ", pathname 
print "Script dir: ", os.path.abspath(pathname) 
print 'Current file: ', os.path.dirname(__file__) 
print os.path.dirname(__file__) + '/IDLESTARTUP.txt' 
相關問題