У меня не было решения, только обходной путь.
В Windows Vista встроена команда под названием clip
, которая берет вывод команды из командной строки и помещает ее в буфер обмена. Например, ipconfig | clip
.
Итак, я создал функцию с модулем os
, которая берет строку и добавляет ее в буфер обмена, используя встроенное решение Windows.
import os
def addToClipBoard(text):
command = 'echo ' + text.strip() + '| clip'
os.system(command)
# Example
addToClipBoard('penny lane')
# Penny Lane is now in your ears, eyes, and clipboard.
Как уже отмечалось в комментариях, одним из недостатков этого подхода является то, что команда echo
автоматически добавляет новую строку в конец вашего текста. Чтобы избежать этого, вы можете использовать модифицированную версию команды:
def addToClipBoard(text):
command = 'echo | set /p nul=' + text.strip() + '| clip'
os.system(command)
Если вы используете Windows XP, она будет работать, просто следуя инструкциям в Копировать и вставлять из командной строки Windows XP Pro прямо в буфер обмена .