ich möchte ein Skript schreiben, welches ein Programm auf dem Rechner anhand eines eingegebenen Strings sucht und bei einem Treffer dieses ausführt. dafür gebe ich als String den Namen an und gegebenenfalls die Datei-Endung. In den program_paths werden alle Pfade angegeben, in welchen Programme installiert werden.
Dafür habe ich mal folgendes geschrieben:
Code: Alles auswählen
def __init__(self):
self.program_paths = program_paths
self.open_program_done = False
Code: Alles auswählen
def open(self, program_name, ending='exe'):
for item in program_paths:
finder = Thread(target=self.find_files(self, program_name, item, ending))
finder.daemon = True
finder.start()
Code: Alles auswählen
def find_files(self, program_name, root, ending):
for root, dirs, files in os.walk(root):
for f in files:
if f.lower().endswith(ending) and program_name.lower() in f.lower():
f = os.path.join(root, f)
print(f)
temp_name = program_name + "." + ending
if temp_name == f:
subprocess.Popen(f)
if open_program_done:
break
if not open_program_done:
for d in dirs:
d = os.path.join(root, d)
self.find_files(self, d, ending, ending)
else:
break
Vielen Dank für Eure Hilfe!