2009-07-14 14 views

Antwort

12

Vielleicht os.path.abspath() es tun würde:

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

Wenn Ihre something.exe nicht im aktuellen Verzeichnis befindet, können Sie ein beliebigen relativen Pfad übergeben und abspath() wird es lösen.

+0

+1. Ich habe dich in Sekundenschnelle vermisst. :) – simplyharsh

7

Verwendung os.path.abspath eine normalisierte verabsolutierten Version der Pfadname
Verwendung erhalten os.walk die Lage

wissen
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 
4

wenn Sie absolut nicht zu bekommen, wo es ist, ist der einzige Weg, um es von der Wurzel beginnen zu finden 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) 

sonst, wenn Sie wissen, dass es nur wenige Orte, die Sie Sie speichern exe, wie Ihre system32, dann starten Sie es von dort zu finden. Sie können auch os.environ ["PATH"] verwenden, wenn Sie Ihre .exe immer in eines dieser Verzeichnisse in Ihrer PATH-Variablen schreiben.

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) 
2

Uh ... Diese Frage ist ein wenig unklar.

Was meinst du mit "haben"? Hast du den Namen der Datei? Hast du es geöffnet? Ist es ein Dateiobjekt? Ist es ein Dateideskriptor? Was???

Wenn es ein Name ist, was meinst du mit "finden"? Möchten Sie die Datei in einer Reihe von Verzeichnissen suchen? Oder wissen Sie, in welchem ​​Verzeichnis es sich befindet?

Wenn es ein Dateiobjekt ist, dann müssen Sie es vernünftig geöffnet haben, und dann kennen Sie den Pfad bereits, obwohl Sie den Dateinamen auch von fileob.name erhalten können.

Verwandte Themen