2016-07-02 8 views
1

問題が発生したときに楽しいプログラムを作り始めました。問題は、Windowsがインストールされたドライブレターがルートドライブにインストールされていることを確認することでした。私はすでにそのための機能があると思っていましたが、しばらく検索して見つけられませんでした。Python、Windowsがインストールされたドライブ文字を見つける

私は今説明したばかりのことを行うためにこのコードを書いています。このコードは冗長で、私はばかですか?おそらくもっと簡単な方法があります。

def root(): 

root = "" 
i = 0 
drives = win32api.GetLogicalDriveStrings() 
drives = drives.split("\000")[:-1] 

for i in range(0, len(drives)): 
    drives[i] = drives[i].replace("\\", "/") 

i = 0 
for i in range(0, len(drives)): 

    if os.path.exists(drives[i] + "Windows"): 
     root = drives[i] 
     break 

return root 

私は、誰かがこれをテスト目的のために使うことができると思います。

+0

あなたは、「GetSystemDirectory」と「GetWindowsDirectory」の両方を利用できます。どちらかが役に立つと思います。 – enhzflep

答えて

2

環境変数windirがあります。私のコンピュータには「C:\ Windows」が入っています。この変数はos.getenv('WINDIR')で読むことができます(python 2:os.getenv()またはpython 3:os.getenv()を参照)。

+0

「Windows」というディレクトリにWindowsをインストールする必要はありません。あなたのソリューションは、一貫して信頼性の高い方法です。副次的注意:python 3.5では 'os.environ ['windir']'を使うこともできます。 – theB

+0

'os.environ'はpython 3.5に限定されていません。 IstはPython 2.7にも存在します([python 2.7:os.envirion](https://docs.python.org/2/library/os.html#os.environ)) – Humbalan

+0

目的は**を得ることですWindowsがインストールされているドライブ文字**を使用する場合は、 'windir'の代わりに' systemdrive'環境変数を使用してください。 –

関連する問題