2013-12-13 46 views
2

如果我有一個變量var ='這是一個變量'如何將字符串複製到Windows剪貼板?蟒蛇3

我怎樣才能將這個字符串複製到Windows剪貼板,所以我可以簡單地按Ctrl + V和它的其他地方轉移?我不想使用那些不是沒有內置的東西,我希望這是可能的。

謝謝!

+0

使用'clip' CMD工具。將它的輸入複製到剪貼板 – dawg

回答

8

你可以這樣做:

>>> import subprocess 
>>> def copy2clip(txt): 
... cmd='echo '+txt.strip()+'|clip' 
... return subprocess.check_call(cmd, shell=True) 
... 
>>> copy2clip('now this is on my clipboard') 
+0

請問,爲什麼要投票? – dawg

+1

大概是因爲複製shell代碼的危險。我想知道當傳遞給你的函數時'x && rm -rf /'會做什麼。 –

+0

@CeesTimmerman:通過推理,人們絕不會使用一個子進程調用的任何東西。如果程序保持對所謂的子程序的控制,那麼使用子程序是完全安全的。事實上,你甚至不需要調用子進程來擦除磁盤。 'shutil.rmtree()'會做或者'os.remove()'會很好地做。我認爲你正在混淆用戶字符串或使用任意字符串,並用* those *執行代碼,而只是用程序內部構造的字符串調用shell調用。 – dawg

5

Pyperclip提供了一個跨平臺的解決方案。

一個說明這個模塊:它編碼字符串轉換爲ASCII,所以你提出需要執行上的一些字符串編碼/解碼的工作,以配合它之前運行它通過Pyperclip。

例子:

import pyperclip 

#Usual Pyperclip usage: 
string = "This is a sample string." 
pyperclip.copy(string) 
spam = pyperclip.paste() 

#Example of decoding prior to running Pyperclip: 
strings = open("textfile.txt", "rb") 
strings = strings.decode("ascii", "ignore") 
pyperclip.copy(strings) 
spam = pyperclip.paste() 

大概一個明顯的提示,但我遇到了麻煩,直到我看了看Pyperclip的代碼。

+0

Pyperclip現在支持在Windows上的Unicode。 –

相關問題