[Pythonmac-SIG] Copying to clipboard (pasteboard)

Doug Schwarz dmschwarz at urgrad.rochester.edu
Wed Mar 23 00:29:35 CET 2005


On Mar 22, 2005, at 3:30 PM, Jeremy Conlin wrote:

> I have a little python script that reads a text file and prints what 
> it finds to the screen.  Not everything it finds, of course, just the 
> important stuff.  Instead of printing to the screen, or in addition to 
> printing to the screen, I would also like to copy the text to the 
> clipboard so I can paste it in another application.  Does anyone know 
> how to do this?
>
> In my searching, I have found things like Carbon.Scrap, but it has 
> very little documentation and so is of no help to me.
>
> Thanks,
> Jeremy


I figured out how to do this with a lot of trial and error.  You can 
use Carbon or AppKit/Foundation.

-------------------------------------------------
import Carbon.Scrap, AppKit, Foundation

def clipcopy(arg):
	Carbon.Scrap.ClearCurrentScrap()
	scrap = Carbon.Scrap.GetCurrentScrap()
	scrap.PutScrapFlavor('TEXT', 0, arg)

def clippaste():
	scrap = Carbon.Scrap.GetCurrentScrap()
	try:
		return scrap.GetScrapFlavorData('TEXT')
	except:
		return ''

def clipcopy1(arg):
	board = AppKit.NSPasteboard.generalPasteboard()
	board.declareTypes_owner_([AppKit.NSStringPboardType], None)
	newStr = Foundation.NSString.stringWithString_(arg)
	newData = 
newStr.nsstring().dataUsingEncoding_(Foundation.NSASCIIStringEncoding)
	board.setData_forType_(newData, AppKit.NSStringPboardType)

def clippaste1():
	board = AppKit.NSPasteboard.generalPasteboard()
	content = board.stringForType_(AppKit.NSStringPboardType)
	return content
-------------------------------------------------

Doug



More information about the Pythonmac-SIG mailing list