每當我在我的python解釋器中嘗試以下操作。我能夠單詞Hello 複製到命令行,即使我關閉解釋無法追加到剪貼板
from Tkinter import Tk
r = Tk()
r.clipboard_append(" hello ")
但是如果我把這個文件稱爲test.py,然後嘗試
python test.py
這就不行,我不能追加該系統剪貼板
是否有任何人知道爲什麼沒有或不知道會造成一個腳本,並在解釋器運行它之間有什麼區別
每當我在我的python解釋器中嘗試以下操作。我能夠單詞Hello 複製到命令行,即使我關閉解釋無法追加到剪貼板
from Tkinter import Tk
r = Tk()
r.clipboard_append(" hello ")
但是如果我把這個文件稱爲test.py,然後嘗試
python test.py
這就不行,我不能追加該系統剪貼板
是否有任何人知道爲什麼沒有或不知道會造成一個腳本,並在解釋器運行它之間有什麼區別
顯然只有Tkinter進入主循環後才能使用。這適用於我的系統:
from Tkinter import *
r = Tk()
r.clipboard_append("hello")
r.mainloop()
'r.update()'也足夠了,如果你不想要一個主循環。 – 2014-12-03 17:10:53
如果我不想要主循環,該怎麼辦?我希望我的程序在此之後終止。 'r.update()'沒有幫助。使用超時作爲解決方法(見下文)確實有效 – Blauhirn 2016-11-28 16:56:30
我也看到了這種差異。建議的tkinter解決方案可以通過命令行將文本放置在剪貼板上,但在程序中使用時會將剪貼板留空。在程序結束時使用mainloop(),但意味着程序不會結束,而使用r.update()似乎沒有幫助。
注意:如果剪貼板在程序結束前粘貼到另一個應用程序(通過使程序在最後等待用戶輸入時掛起),那麼tkinter解決方案即使在程序結束後也能正常工作。但是,如果程序在剪貼板粘貼到另一個程序之前結束,剪貼板將變爲空白。
像deel,帕特里克牛逼Neslon和其他人的建議,使用:
from Tkinter import *
r = Tk()
r.clipboard_append("hello")
r.mainloop()
沒有在非GUI應用程序正常工作(更新也不能工作)(贏7/64,巨蟒2.7.10/32)。這工作雖然它似乎是一個黑客,通過https://bugs.python.org/issue23760啓發:
from Tkinter import *
r = Tk()
r.clipboard_clear()
r.clipboard_append("hello")
r.after(500, tk.destroy)
r.mainloop()
100毫秒通常我的系統上工作得去與500這一個工具,我會用,不是我願意分佈非常廣泛,除非有更多經驗的人說它的可靠性...
如果你要讓解開器打開,那是因爲(第一種情況)。一旦python運行並清理自己,它將清除剪貼板中的內容。 – dennmat 2012-02-17 14:54:13
正如我在問題中指出的那樣,我關閉瞭解釋器,它仍將它複製到剪貼板。 – samirahmed 2012-02-17 22:45:25
錯過了那個部分,不過你應該首先調用clipboard_clear來確保沒有什麼髒東西。然而,我不確定爲什麼它們在兩者之間會有所不同,因爲它們確實是完全相同的東西。希望有人爲你解答。 – dennmat 2012-02-17 23:16:45