Python буфер обмена windows

Как читать текст из (окна) буфера обмена из python?

59 Foo42 [2008-09-19 14:09:00]

Как читать текст из (windows) буфера обмена из python?

10 ответов

69 Решение Sakin [2008-09-19 14:20:00]

Вы можете использовать модуль win32clipboard, который является частью pywin32.

Вот пример, который сначала устанавливает данные буфера обмена, затем получает его:

Важное напоминание из документации:

Когда окно завершит проверку или изменение буфера обмена, закройте буфер обмена, вызвав CloseClipboard. Это позволяет окна для доступа к буферу. Не размещайте объект на буфер обмена после вызова CloseClipboard.

Я видел много предложений по использованию модуля win32, но Tkinter предоставляет самый короткий и простой метод, который я видел, как в этом сообщении: Как скопировать строку в буфер обмена в Windows с использованием Python?

Кроме того, Tkinter находится в стандартной библиотеке python.

18 kmonsoor [2014-05-24 14:58:00]

вы можете легко сделать это через встроенный модуль Tkinter, который является в основном графическим интерфейсом. Этот код создает пустой виджет для получения содержимого буфера обмена из ОС.

11 born [2012-06-19 11:00:00]

Самый предыдущий ответ выше, это странно, так как он просто очищает буфер обмена, а затем получает контент (который затем пуст). Можно было очистить буфер обмена, чтобы убедиться, что некоторый тип содержимого буфера обмена, такой как «форматированный текст», не «покрывает» ваш текстовый контент, который вы хотите сохранить в буфере обмена.

Следующий фрагмент кода заменяет все новые строки в буфере обмена пробелами, затем удаляет все двойные пробелы и, наконец, сохраняет содержимое обратно в буфер обмена:

10 kichik [2014-04-25 08:54:00]

Если вы не хотите устанавливать дополнительные пакеты, ctypes может также выполнить задание.

Попробуйте win32clipboard из пакета win32all (который, вероятно, установлен, если вы используете ActiveState Python).

2 Dan [2016-04-27 13:19:00]

Использовать библиотеку Pythons Буфер обмена

Его просто используют следующим образом:

Для моей консольной программы ответы с tkinter above не совсем сработали для меня, потому что .destroy() всегда выдавал ошибку:

не может вызывать команду «event»: приложение было уничтожено при выполнении.

или при использовании .withdraw() консольное окно не возвращает фокус.

Чтобы решить эту проблему, вам также нужно вызвать .update() перед .destroy(). Пример:

Функция r.withdraw() предотвращает показ кадра в течение полувека, а затем он будет уничтожен, возвращая фокус обратно в консоль.

1 np8 [2016-07-03 18:54:00]

Я узнал, что это был самый простой способ получить доступ к буферу из python:

1) Установите pyperclip: pip install pyperclip

Протестировано на 64-разрядном Win10, Python 3.5. Кажется, что работать с символами, отличными от ASCII, тоже. Протестированные символы включают ± ° ©© αβγθΔΨΦåäö

Как читать текст из буфера обмена (windows) из python?

Как читать текст из буфера обмена (windows) из python?

10 ответов:

вы можете использовать модуль под названием win32clipboard, которая является частью pywin32.

вот пример, который сначала устанавливает данные буфера обмена, а затем получает его:

важное напоминание из документации:

когда окно закончит изучение или изменение буфера обмена, закройте буфер обмена, вызвав CloseClipboard. Это позволяет другим окна доступа к буферу обмена. Не устанавливайте объект на этот буфер обмена после вызова CloseClipboard.

вы можете легко сделать это через встроенный модуль Tkinter который в основном является библиотекой GUI. Этот код создает пустой виджет для получения содержимого буфера обмена из ОС.

Я видел много предложений по использованию модуля win32, но Tkinter предоставляет самый короткий и простой метод, который я видел, как в этом посте:Как скопировать строку в буфер обмена в Windows с помощью Python?

кроме того, Tkinter находится в стандартной библиотеке python.

Читайте также:  Linux top cpu usage

самый популярный ответ выше странный в том смысле, что он просто очищает буфер обмена, а затем получает содержимое (которое затем пусто). Можно очистить буфер обмена, чтобы убедиться, что какой-то тип содержимого буфера обмена, например «форматированный текст», не «покрывает» ваш обычный текстовый контент, который вы хотите сохранить в буфере обмена.

следующий фрагмент кода заменяет все символы новой строки в буфер обмена пробел, а затем удаляет все двойные пробелы и, наконец, сохраняет содержимое обратно буфер обмена:

Если вы не хотите устанавливать дополнительные пакеты, ctypes может сделать эту работу также.

попробуйте win32clipboard из пакета win32all (который, вероятно, установлен, если вы находитесь на ActiveState Python).

для меня консольная программа ответы с tkinter выше, не совсем Работа для меня, потому что .destroy() всегда давал ошибку,:

не удается вызвать команду «событие»: приложение было уничтожено во время выполнения.

или при использовании .withdraw () окно консоли не вернуло фокус обратно.

чтобы решить эту проблему, вы также должны позвонить .обновление () перед началом .уничтожать.)( Пример:

Р.снять() предотвращает отображение кадра в течение миллисекунды, а затем он будет уничтожен, возвращая фокус на консоль.

его просто использовали так:

я узнал, что это был самый простой способ получить доступ к буферу обмена из Python:

1) Установите pyperclip: pip install pyperclip

протестировано на 64-битном Win10, Python 3.5. Кажется, работает и с не-ASCII символами. Проверенные символы включают ±°©©αβγδδψφåäö

стандартная библиотека Python делает это.

Как скопировать строку в буфер обмена на Windows с помощью Python?

Я пытаюсь создать базовое приложение Windows, которое строит строку из пользовательского ввода, а затем добавляет ее в буфер обмена. Как скопировать строку в буфер обмена с помощью Python?

23 ответа

Я пытаюсь скопировать строку в буфер обмена в Python, в соответствии с вопросом, Как скопировать строку в буфер обмена на Windows с помощью Python? Мой текущий код: from Tkinter import Tk r = Tk() r.withdraw() r.clipboard_clear() variable_desired = text to copy r.clipboard_append(variable_desired).

Есть ли способ скопировать строку в буфер обмена через Scala? Похоже на Python-е: from Tkinter import Tk r = Tk() r.withdraw() r.clipboard_clear() r.clipboard_append(‘this is my text’) r.destroy() Этот вопрос касается того, как скопировать строку в буфер обмена в Swing, но мне нужно что-то, что.

На самом деле, pywin32 и ctypes кажутся излишними для этой простой задачи. Tkinter -это кросс-платформенный фреймворк GUI, который по умолчанию поставляется с Python и имеет методы доступа к буферу обмена наряду с другими классными вещами.

Если все, что вам нужно, это поместить некоторый текст в системный буфер обмена, это сделает это:

И это все, не нужно возиться с платформо-специфичными сторонними библиотеками.

Если вы используете Python 3, Замените TKinter на tkinter .

У меня не было решения, только обходной путь.

Windows Vista и далее имеет встроенную команду под названием clip , которая берет вывод команды из командной строки и помещает ее в буфер обмена. Например, ipconfig | clip .

Поэтому я создал функцию с модулем os , которая берет строку и добавляет ее в буфер обмена, используя встроенное решение Windows.

Однако, как уже отмечалось в комментариях, одним из недостатков этого подхода является то, что команда echo автоматически добавляет новую строку в конец текста. Чтобы избежать этого, вы можете использовать модифицированную версию команды:

Читайте также:  Hp 1522nf драйвер сканера windows 10 x64

Если вы используете Windows XP, он будет работать, просто следуя инструкциям в разделе копирование и вставка из командной строки Windows XP Pro прямо в буфер обмена .

Вы также можете использовать ctypes, чтобы подключиться к Windows API и избежать массивного пакета pywin32. Это то, что я использую (извините за плохой стиль, но идея есть):

Я хотел бы написать функцию python, чтобы получить gif-файл с заданным значением URL и сохранить его в буфере обмена Mac. Может ли кто-нибудь помочь мне понять, как скопировать GIF в буфер обмена? (Допустим, URL очень прост и прямо указывает на нужный мне GIF-файл a.com/this.gif.)

Я хочу скопировать строку в системный буфер обмена с помощью php (который работает как клиентский скрипт) на MAC OSX. Почему я хочу эту функцию? Я пишу скрипт php, который работает как клиентский скрипт на моем MAC OSX. Он используется для загрузки некоторого текста на веб-сайт , загрузки.

Вы можете использовать pyperclip -кросс-платформенный модуль буфера обмена. Или Xerox -подобный модуль, за исключением того, что для работы с Windows требуется модуль win32 Python.

Вы можете использовать отличный pandas, который имеет встроенную поддержку буфера обмена, но вам нужно пройти через DataFrame.

Самый простой способ — с помощью pyperclip . Работает в python 2 и 3.

Чтобы установить эту библиотеку, используйте:

Если вы хотите получить содержимое буфера обмена:

По какой-то причине я никогда не мог заставить решение Tk работать на меня. решение kapace гораздо более работоспособно, но форматирование противоречит моему стилю и не работает с Unicode. Вот модифицированная версия.

Вышеизложенное изменилось с тех пор, как этот ответ был впервые создан, чтобы лучше справляться с расширенными символами Unicode и Python 3. Он был протестирован как в Python 2.7, так и в 3.5 и работает даже с такими эмодзи, как \U0001f601 () .

Я пробовал разные решения, но это самое простое, которое проходит мой тест :

Испытано OK в Python 3.4 на Windows 8.1 и Python 2.7 на Windows 7. Также при чтении данных Unicode с Unix строчными переводами, скопированными из Windows. Скопированные данные остаются в буфере обмена после выхода Python: «Testing the “clip—board”: «

Если вы не хотите никаких внешних зависимостей, используйте этот код (теперь он является частью кросс-платформенного pyperclip — C:\Python34\Scripts\pip install —upgrade pyperclip ):

Похоже, вам нужно добавить win32clipboard к вашим сайтам-пакетам. Это часть пакета pywin32

Вот самый простой и надежный способ, который я нашел, если вы в порядке в зависимости от Pandas. Однако я не думаю, что это официально часть Pandas API, поэтому он может сломаться с будущими обновлениями. Он работает по состоянию на 0.25.3

Вы можете использовать модуль clipboard . Он прост и чрезвычайно прост в использовании. Работает с Mac, Windows, & Linux .
Примечание: это альтернатива pyperclip

После установки импортируйте его:

Тогда вы можете скопировать вот так:

Вы также можете вставить скопированный текст:

Виджеты также имеют метод с именем .clipboard_get() , который возвращает содержимое буфера обмена (если только не происходит какая-то ошибка в зависимости от типа данных в буфере обмена).

Метод clipboard_get() упоминается в этом отчете об ошибке:
http:/ / bugs.python.org / issue14777

Как ни странно, этот метод не был упомянут в общих (но неофициальных) онлайн-источниках документации TkInter, на которые я обычно ссылаюсь.

Я думаю, что есть гораздо более простое решение этой проблемы.

Читайте также:  Посчитать размер директории linux

Затем запустите свою программу в командной строке

Это приведет к передаче выходных данных вашего файла в буфер обмена

В дополнение к ответу Марка Рэнсома с использованием ctypes: Это не работает для (всех?) систем x64, так как дескрипторы, кажется, усечены до int-размера. Явное определение args и возвращаемых значений помогает преодолеть эту проблему.

Это улучшенный ответ атомайзера .

Обратите внимание на 2 вызова с задержкой update() и 200 ms между ними. Они защищают замораживание приложений из-за нестабильного состояния буфера обмена:

Фрагмент, которым я делюсь здесь, использует возможность форматирования текстовых файлов: что делать, если вы хотите скопировать сложный вывод в буфер обмена ? (Скажем, массив numpy в столбце или список чего-то)

работает только для windows, может быть адаптирован для linux или mac, я думаю. Может быть, немного сложнее.

Ctrl+V в любом текстовом редакторе :

Не все ответы работали для моих различных конфигураций python, поэтому это решение использует только модуль подпроцесса. Однако copy_keyword должен быть pbcopy для Mac или clip для Windows:

Вот еще один обширный код, который автоматически проверяет, что такое текущая операционная система:

Используйте библиотеку буфера обмена python!

Буфер обмена теперь содержит ‘abc’. Счастливого приклеивания!

Вы можете использовать модуль winclip32! устанавливать:

Фрагмент кода для копирования буфера обмена:

Создайте код обертки Python в модуле с именем (clipboard.py ):

Затем импортируйте вышеупомянутый модуль в свой код.

вы можете попробовать это:

Похожие вопросы:

Я пытаюсь переключиться на Eclipse с моего другого IDE, и пока все работает нормально, за исключением проблемы, описанной в названии. В моем предыдущем IDE (идея) Я бы поместил курсор на строку.

Если у меня есть переменная var = ‘это переменная’ как я могу скопировать эту строку в буфер обмена windows, чтобы просто нажать Ctrl+v и она была перенесена в другое место? Я не хочу использовать.

Есть ли способ скопировать (или вырезать) файл в буфер обмена Windows из командной строки? В частности, с помощью пакетного скрипта. Я знаю, как скопировать содержимое в буфер обмена ( type file |.

Я пытаюсь скопировать строку в буфер обмена в Python, в соответствии с вопросом, Как скопировать строку в буфер обмена на Windows с помощью Python? Мой текущий код: from Tkinter import Tk r = Tk().

Есть ли способ скопировать строку в буфер обмена через Scala? Похоже на Python-е: from Tkinter import Tk r = Tk() r.withdraw() r.clipboard_clear() r.clipboard_append(‘this is my text’) r.destroy().

Я хотел бы написать функцию python, чтобы получить gif-файл с заданным значением URL и сохранить его в буфере обмена Mac. Может ли кто-нибудь помочь мне понять, как скопировать GIF в буфер обмена.

Я хочу скопировать строку в системный буфер обмена с помощью php (который работает как клиентский скрипт) на MAC OSX. Почему я хочу эту функцию? Я пишу скрипт php, который работает как клиентский.

У меня есть скрипт python, в котором я хочу поместить строку в буфер обмена компьютера. У меня это работает в Linux, Mac, а ранее в Windows, используя cygwin. Мне пришлось изменить одну строку кода.

Описание буровой установки: Я установил Debian в Windows подсистему Linux (WSL) на Windows 10. Хозяин означает Windows 10. Коробка означает мой WSL-Debian box/container. Цель: У меня есть ключ SSH.

мой вопрос не дубликат, я не использую Jquery, я не использую textarea. Я хочу скопировать значение переменной в буфер обмена с помощью vanilla javascript. Я хотел бы скопировать строку текста.

Оцените статью