私はファイルを持っています、例えば "something.exe"と私はこのファイルへのパスを見つけたいです
どうすればこのことができますか?おそらく、与えられたファイルへのパスを見つける方法はありますか?
3
A
答えて
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
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から取得することはできますが、それを開いて、合理的に、パスを知っている必要があります。
+1。私は数秒であなたを逃した。 :) – simplyharsh