Verknüpfen Sie die Dateierweiterung mit dem Python-Skript, so dass ich die Datei durch Doppelklicken in Windows öffnen kann

8

Ich möchte Folgendes tun:

  1. Speichern Sie numerische Daten in einer CSV-ähnlichen Formatierung mit der Erweiterung ".foo";
  2. Verknüpfen Sie die Dateierweiterung ".foo" mit einem Python-Skript, das wiederum die .foo-Datei öffnet, ihren Inhalt liest und etwas mit einer Plot-Bibliothek (matplotlib höchstwahrscheinlich) plottet.

Der Anwendungsfall wäre: doppelklicken Sie auf die Datei, und ihr jeweiliges Plot erscheint sofort.

Ich frage mich, wie ich ein Python-Skript schreiben sollte, um das zu tun. Außerdem erlaubt der Windows-Dialog "Öffnen mit" nur die Auswahl ausführbarer Dateien (* .exe). Wenn ich "fooOpener.py" wähle, funktioniert es nicht.

    
heltonbiker 13.03.2015, 20:40
quelle

1 Antwort

7

Dies ist nicht wirklich eine Programmierfrage, aber Sie müssen herausfinden, wie Sie die Python-Programmdatei in den Registrierungsschlüssel bringen, der Ihre Datendatei öffnet.

Ich habe zum Beispiel ein kleines Python-Skript namens opener.py erstellt, das so aussieht:

%Vor%

Dann habe ich ein testfile.foo erstellt und die Schaltfläche "Ändern" im Eigenschaftsdialog der Datei benutzt, um opener.py zu wählen. (Sie können dies tun, wenn Sie auf Durchsuchen klicken und den Dateifilter des Dialogfelds Öffnen mit auf "Alle Dateien" ändern.)

Natürlich hat das nicht funktioniert (wie Sie bemerkt haben). Also habe ich regedit geöffnet und nach opener.py gesucht und es am folgenden Registrierungsschlüssel gefunden:

%Vor%

Der Standardwert dieses Schlüssels war "C:\opener.py" %1 . Ich habe es in python "C:\opener.py" %1 geändert. Es hat funktioniert!

Lange Rede, kurzer Sinn: Um dies richtig zu machen, müssen Sie die Registrierung benutzerdefiniert bearbeiten. Tatsächlich ist das Einrichten der Dateizuordnung komplexer als das Bearbeiten nur eines Schlüssels (Sie müssen auch angeben, dass .foo opener.py zugeordnet ist).

Ein alternativer Ansatz wäre, Ihr Python-Skript in eine eigenständige ausführbare Datei umzuwandeln, indem Sie eines der verschiedenen Tools verwenden, die für diesen Zweck verfügbar sind, oder eine kleine ausführbare Datei in C schreiben, die das Skript startet.

    
kindall 13.03.2015, 21:04
quelle