2009-07-14 5 views

答えて

12

os.path.abspath()はそれを行うだろう:

import os 
print os.path.abspath("something.exe") 

あなたsomething.exeが現在のディレクトリにない場合には、すべての相対パスを渡すことができますし、abspath()がそれを解決します。それはそれがどこにあるか、あなたが絶対にわからない場合は、唯一の方法は、それがルートから見つけることです場所

import os 
exe = 'something.exe' 
#if the exe just in current dir 
print os.path.abspath(exe) 
# output 
# D:\python\note\something.exe 

#if we need find it first 
for root, dirs, files in os.walk(r'D:\python'): 
    for name in files: 
     if name == exe: 
      print os.path.abspath(os.path.join(root, name)) 

# output 
# D:\python\note\something.exe 
+0

+1。私は数秒であなたを逃した。 :) – simplyharsh

7

使用os.path.abspath c:\

import os 
for r,d,f in os.walk("c:\\"): 
    for files in f: 
     if files == "something.exe": 
       print os.path.join(r,files) 

他にも、system32のようにexeを保存する場所がほんの少ししかないことがわかっている場合は、そこから見つけてください。 PATH変数内のディレクトリの1つに.exeを置く場合は、os.environ ["PATH"]を使用することもできます。

for p in os.environ["PATH"].split(";"): 
    for r,d,f in os.walk(p): 
     for files in f: 
      if files == "something.exe": 
       print os.path.join(r,files) 
4

です取得するためのパス名
使用os.walkの正規化された絶対を取得する

2

ええと...この質問は少し不明です。

「持っている」とはどういう意味ですか?あなたはファイルの名前を持っていますか?それを開いたことがありますか?それはファイルオブジェクトですか?それはファイル記述子ですか?何???

名前の場合は、「検索」とはどういう意味ですか?たくさんのディレクトリにあるファイルを検索しますか?または、それがどのディレクトリにあるか知っていますか?

ファイルオブジェクトの場合は、ファイルオブジェクトをfileob.nameから取得することはできますが、それを開いて、合理的に、パスを知っている必要があります。

関連する問題