PythonでPyAutoGUIを使用しテキストファイルを開きテキストを入力する

PythonでPyAutoGUIを使用しテキストファイルを開き、キーボードの制御で、テキストを入力してみます。

pyautoguiライブラリは、Pythonの標準ライブラリではありませんので、事前にインストールしておく必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■テキストファイルを用意する

PyAutoGUIを使用しテキストファイルを開き、キーボードの制御で、テキストを入力するという自動化を行ってみますが、その前にテキストファイルを用意します。

今回用意したのは、「test.txt」というtxt形式の空のテキストファイルです。このテキストファイルが置かれている場所は「C:\Users\user_\test(フォルダパス)」になります。

■PyAutoGUIを使用しテキストファイルを開き、キーボードの制御で、テキストを入力する

テキストファイルが用意できましたので、PyAutoGUIを使用しテキストファイルを開き、キーボードの制御で、テキストを入力するスクリプトを書いていきます。

■コード

import os
import pyautogui
import time

os.startfile(r'C:\Users\user_\test\test.txt')
time.sleep(3)
pyautogui.write('こんにちは、世界')

テキストファイルを開き、キーボードの制御で、テキストを入力するために、インストールしたPyAutoGUI以外に、Pythonの標準ライブラリであるos,timeモジュールをimportで呼び出します。

その後、os.startfile()関数を使用します。os.startfile()関数の括弧内に、引数,パラメータとして、スタートさせるテキストファイルを渡しますので、置かれている場所とテキストファイルの名前を記述します。

記述後、time.sleep()関数を使用します。time.sleep()関数の括弧内に、引数,パラメータとして、処理を停止させるための秒数を渡します。今回は「3」とします。

処理を指定された秒数停止させた後は、pyautogui.write()関数を使用します。pyautogui.write()関数の括弧内に、引数,パラメータとして、キーボード制御により入力する文字列を渡します。今回は、日本語で「こんにちは、世界」とします。

これで、テキストファイルを開き、キーボードの制御で、テキストを入力するという自動化が行えます。

■実行(検証)

このスクリプトを「keyboard_control.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、メモ帳が自動的に起動し、指定したファイル(’C:\Users\user_\test\test.txt’)が表示されます。表示されますが、キーボード制御による入力が行われず、メモ帳が起動したままで、スクリプトが終了してしまいました。

終了した後に原因を調べてみると、pyautogui.write()関数を使用する際に括弧内に、引数,パラメータとして、日本語の文字列を渡しましたが、日本語が入力できないということが判明しました。

■テキストファイルを開き日本語のテキストを入力する

では、スクリプトを改善し、テキストファイルを開き日本語のテキストを入力するスクリプトを書いていきます。

■コード

import os
import pyautogui
import time
import pyperclip

os.startfile(r'C:\Users\user_\test\test.txt')
pyperclip.copy('こんにちは、世界')
time.sleep(3)
pyautogui.hotkey("ctrl","v")

os.startfile()関数を使用します。os.startfile()関数の括弧内に、引数,パラメータとして、スタートさせるテキストファイルを渡しますので、置かれている場所とテキストファイルの名前を記述します。

記述後、pyperclip.copy()関数を使用します。pyperclip.copy()関数の括弧内に、引数,パラメータとして、クリップボード機能にコピーする文字列を渡します。渡す文字列は、日本語で「こんにちは、世界」とします。なお、pyperclipモジュールを使用する際は、事前にPythonにモジュールをインストールしておきます。

その後、time.sleep()関数を使用します。time.sleep()関数の括弧内に、引数,パラメータとして、処理を停止させるための秒数を渡します。今回は「3」とします。

処理を指定された秒数停止させた後は、pyautogui.hotkey()関数を使用します。pyautogui.hotkey()関数の括弧内に、引数,パラメータとして、特定の機能を動作させるためのキーを渡します。今回は、「”ctrl”,”v”」とし、ペーストの機能を動作させます。

これでテキストファイルを開き日本語のテキストを入力することができます。

■実行(検証)

このスクリプトを「keyboard_control_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、今度はメモ帳が自動的に起動し、指定したファイル(’C:\Users\user_\test\test.txt’)が表示され、クリップボード機能でコピーされた文字列(日本語)を、テキストファイルへペーストし、日本語を入力することができました。

コメント

タイトルとURLをコピーしました