Python: クリップボードへ文字列を貼り付け
下記サイトより転記。Windows/Mac/Linux に対応。
http://www.pasteall.org/14794/python
# Code from
# http://blenderscripts.googlecode.com/svn-history/r41/trunk/scripts/sketch_export.py
def copy_to_clipboard(text):
"""
Copy text to the clipboard
Returns True if successful. False otherwise.
"""
# =============================================================================
# win32 (Windows)
try:
import win32clipboard
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(text)
win32clipboard.CloseClipboard()
return True
except:
pass
# =============================================================================
# clip (Windows)
try:
import subprocess
p = subprocess.Popen(['clip'], stdin=subprocess.PIPE)
p.stdin.write(text)
p.stdin.close()
retcode = p.wait()
return True
except:
pass
# =============================================================================
# pbcopy (Mac OS X)
try:
import subprocess
p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
p.stdin.write(text)
p.stdin.close()
retcode = p.wait()
return True
except:
pass
# =============================================================================
# xclip (Linux)
try:
import subprocess
p = subprocess.Popen(['xclip', '-selection', 'c'], stdin=subprocess.PIPE)
p.stdin.write(text)
p.stdin.close()
retcode = p.wait()
return True
except:
pass
# =============================================================================
# xsel (Linux)
try:
import subprocess
p = subprocess.Popen(['xsel'], stdin=subprocess.PIPE)
p.stdin.write(text)
p.stdin.close()
retcode = p.wait()
return True
except:
pass
# =============================================================================
# pygtk
try:
# Code from
# http://www.vector-seven.com/2007/06/27/passing-data-between-gtk-applications-with-gtkclipboard/
import pygtk
pygtk.require('2.0')
import gtk
# get the clipboard
clipboard = gtk.clipboard_get()
# set the clipboard text data
clipboard.set_text(text)
# make our data available to other applications
clipboard.store()
return True
except:
pass
return False
0 件のコメント:
コメントを投稿