3 Stimmen

Zeichenkette kopieren - Python

Ok Leute, ich kann mir vorstellen, dass dies einfach ist, aber ich kann nicht scheinen zu finden, wie man eine Zeichenfolge zu kopieren. Einfach COPY auf das System wie CTRL+C auf einen Text.

Grundsätzlich möchte ich eine Zeichenfolge kopieren, so dass ich zum Beispiel, sagen wir, einfügen (ctrl+v) kann.

Tut mir leid, dass die Frage so trivial ist, haha.

4voto

Matthew Flaschen Punkte 266507

Für Windows, Sie win32-Zwischenablage verwenden . Sie benötigen pywin32 .

Für GTK (zumindest unter GNU/Linux) können Sie pygtk verwenden .

EDIT: Da Sie erwähnt (ein bisschen spät) Sie verwenden wxPython, sie haben tatsächlich ein Modul für diese zu, wx.Zwischenablage .

2voto

Lucas Jones Punkte 19251

Dies hängt stark vom Betriebssystem ab. Unter Linux ist es aufgrund des bizarren Auswahlmodells von X am einfachsten, wenn Sie popen('xsel -pi') und schreiben Sie den Text in diese Pipe.

Zum Beispiel: (ich glaube)

def select_xsel(text):
    import subprocess
    xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
    xsel_proc.communicate(some_text)

Wie in den Kommentaren erwähnt, können Sie auf einem Mac die Funktion /usr/bin/pbcopy Befehl, etwa so:

xsel_proc = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)

Wenn Sie verschiedene Betriebssysteme unterstützen möchten, können Sie verschiedene Lösungen mit os.name um die zu verwendende Methode zu bestimmen:

import os, subprocess
def select_text(text):
    if os.name == "posix":
        # try Mac first
        try:
            xsel_proc = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
        except:
            # try Linux version
            xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
    elif os.name == "nt":
        # Windows...

2voto

inspectorG4dget Punkte 103745

Unter Windows können Sie Folgendes tun este und es ist viel einfacher, als einen neuen Unterprozess zu erstellen usw...

2voto

Dave Kirby Punkte 24272

Für eine plattformübergreifende Lösung müssen Sie ein plattformübergreifendes Framework wie wxPython oder PyQt verwenden - beide unterstützen das Lesen und Schreiben in die Systemzwischenablage auf plattformunabhängige Weise.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X