Python 3(Windows 10)用のpyautoguiモジュールを使用してブラウザまたはワードプロセッサでいくつかのアクションを自動化しようとしています。
ブラウザに強調表示されたテキストがあります。
text
次のスクリプトは、強調表示されたテキストを出力する必要があります
import pyautogui as pya
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
# a function copy_clipboard() should be called here
var = copy_clipboard()
list.append(var)
print(list)
出力は次のようになります。
[text]
では、関数copy_clipboard()はどのように見えるべきでしょうか?ご協力ありがとうございました。
キーボードコンボCtrl + Cは、ほとんどのアプリで強調表示されているもののコピーを処理し、正常に機能するはずです。この部分はpyautogui
で簡単です。他の人が述べているように、クリップボードの内容をプログラムで取得するには、ctypes
、pywin32
、またはその他のライブラリを使用してクリップボードのコンテンツを実装できます。ここで私はpyperclip
を選択しました:
import pyautogui as pya
import pyperclip # handy cross-platform clipboard text handler
import time
def copy_clipboard():
pya.hotkey('ctrl', 'c')
time.sleep(.01) # ctrl-c is usually very fast but your program may execute faster
return pyperclip.paste()
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
var = copy_clipboard()
list.append(var)
print(list)
さて...ここにあります:
_from tkinter import Tk
def copy_clipboard():
clipboard = Tk().clipboard_get()
return clipboard
_
Tk().clipboard_get()
は、クリップボード内の現在のテキストを返します。
そして、最初にpyautogui.hotkey('ctrl', 'c')
を使用する必要があります。
投稿されたサウンドストライプは有効ですが、前の値がコピーされたときにnull値をコピーすることは考慮されていません。 null値のコピーがnull値のままになるように、クリップボードをクリアする追加の行を含めました。
import pyautogui as pya
import pyperclip # handy cross-platform clipboard text handler
import time
def copy_clipboard():
pyperclip.copy("") # <- This prevents last copy replacing current copy of null.
pya.hotkey('ctrl', 'c')
time.sleep(.01) # ctrl-c is usually very fast but your program may execute faster
return pyperclip.paste()
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
var = copy_clipboard()
list.append(var)
print(list)
pyperclip
をインポートしてpyperclip.copy('my text I want copied')
を使用し、次にpyperclip.paste()
を使用してテキストを好きな場所に貼り付けることができます。あなたは参照を見つけることができます ここ 。