Öffnen Sie einen bestimmten Dateityp mit Python-Skript?

9

Wie kann ich ein Python-Skript als Standardanwendung eines bestimmten Dateityps (z. B. * .foo) festlegen? Wenn ich die Datei im Finder / Explorer doppelklicke, möchte ich, dass die Datei im Python-Skript geöffnet wird.

Ist das in Win und / oder OS X möglich? Die Anwendung ist eine PySide-App, wenn das wichtig ist.

    
c00kiemonster 01.01.2012, 14:45
quelle

5 Antworten

3

Mac OS X

Auf Mac OS X können Sie Automator verwenden, um eine Anwendung zu erstellen, die Ihre Python-Anwendung aufruft und den Eingabedateipfad als Zeichenfolgenargument übergibt. Fügen Sie im Anwendungs-Workflow-Assistenten die Aktion "Run Shell Script" hinzu, wählen Sie Pass input: als as arguments und fügen Sie im Textfeld Folgendes hinzu:

%Vor%

Das "$@" übergibt alle Argumente, die in der Eingabe waren (aka die ausgewählte Datei), als Zeichenfolgen. Solange Ihr Skript so eingerichtet ist, dass es mit der Eingabe ( sys.argv ) als String-Liste arbeitet (die erste ist der Python-App-Pfad), funktioniert es.

Wenn Sie diesen Automator-Workflow speichern, wird er wie jede andere Anwendung von OS X behandelt, und Sie können diese App als Standard für Dateien vom Typ "* .foo" festlegen. Um "* .foo" mit dieser App zu verknüpfen, klicken Sie mit der rechten Maustaste auf eine .foo-Datei, Get Info , Open with: Other... , wählen Sie die in Automator erstellte App aus und klicken Sie dann auf die Schaltfläche Change All... .

Windows

Ein ähnlicher, aber hoffentlich weniger aufwändiger Ansatz könnte in Windows funktionieren. Sie könnten wahrscheinlich eine Batchdatei ( .bat ) mit folgendem erstellen:

%Vor%

Der %* wird auf alle Argumente erweitert.

Solange Sie dieser Datei eine Dateierweiterung zuordnen können, können Sie das tun, und das ist Ihre Lösung. Allerdings habe ich diese Windows-Lösung nicht ausprobiert, also nimm es mit einem Körnchen Salz. Die Mac-Lösung habe ich dagegen getestet.

    
Scott H 25.07.2015 16:28
quelle
0

Hier ist eine universelle Lösung, für die ich geschrieben habe: 1) Öffnen einer Windows-Desktop-Verknüpfung (* .URL), die in eine Linux-Box kopiert wurde. Oder 2) Öffnen eines Linux. Desktop-Links, der in eine Windows-Box kopiert wurde.

Hier ist das Python-Skript, das beide Fälle behandelt:

%Vor%

Unter Windows verwenden Sie die Methode von Scott H (über eine Bat-Datei), um die Zuordnung zu handhaben.

Klicken Sie unter Linux mit der rechten Maustaste auf eine Windows-URL-Datei. Wählen Sie Eigenschaften und Öffnen mit. Klicken Sie auf Hinzufügen, um eine neue Anwendung hinzuzufügen. Klicken Sie dann unten im Fenster "Anwendung hinzufügen" auf "Einen benutzerdefinierten Befehl verwenden". Navigieren Sie dann zur Datei UseDesktopLink.py und klicken Sie auf Öffnen. Bevor Sie jedoch auf "Hinzufügen" klicken, geben Sie in das Textfeld unter "Verwenden eines benutzerdefinierten Befehls" "python" vor den Dateinamen (ohne Anführungszeichen) ein. Klicken Sie dann auf Hinzufügen und schließen.

Ich hoffe, das hilft.

    
Keith Macdonald 11.10.2015 22:38
quelle
-1
  1. Suchen Sie nach any -Dateien vom Typ foo
  2. Rechtsklick - & gt; Get Info oder Klicken Sie auf das Dateisymbol und dann auf Informationen erhalten oder klicken Sie auf die Datei und drücken Sie Befehl + I
  3. Wählen Sie im angezeigten Fenster Open With den Pfad zur Python-Binärdatei
  4. aus
  5. Nach der Auswahl können Sie auf die Schaltfläche change All
  6. klicken
  7. Es wird um Bestätigung gebeten, sagen Sie einfach continue
Lelouch Lamperouge 01.01.2012 17:38
quelle
-1

Ich habe diese alte Frage bei der Suche nach einer Antwort selbst gefunden und dachte, ich würde meine Lösung teilen. Ich habe ein einfaches c-Programm benutzt, um die Argumente zu einem Python-Skript zu leiten, das dem Python-Skript erlaubt, ein Skript zu behalten, anstatt es kompilieren zu müssen, damit die Dinge funktionieren. Hier ist mein Programm:

%Vor%

Ich habe dann das c-Programm kompiliert und das als Standardanwendung für die Dateierweiterung festgelegt.
Dann erhalte ich im Python-Skript YOUR_PYTHON_SCRIPT_HERE.py das folgende Argument:

%Vor%

theFile enthält den Speicherort der Datei, die geöffnet wird Holen Sie den Inhalt der Datei mit:

%Vor%     
potato 19.10.2014 20:00
quelle
-4

Unter Windows:

  1. Klicken Sie mit der rechten Maustaste auf die Datei (ich habe für dieses Beispiel eine .docx -Datei verwendet)
  2. Wählen Sie Open with...
  3. Wählen Sie in der Anwendungsliste python
  4. Optional : Wählen Sie Always use the selected program to open this kind of file .

Hinweis: Dadurch wird der Inhalt der .docx -Datei im Kontext der Python-Shell ausgeführt. Es wird sofort geschlossen, sobald der Inhalt der Datei ausgewertet wurde. Wenn Sie die Datei in einem Textverarbeitungsprogramm bearbeiten möchten, sollten Sie notepad ++ herunterladen >, und wählen Sie diese Anwendung als Standard.

    
Droogans 01.01.2012 19:38
quelle