今回もPythonの記事を掲載します。前回TwitterAPIを使用してフォローするPythonコードを紹介しました。でもそれだけだと毎回コードを実行しないといけないのでかなり不便です。
Contents
一定間隔でPythonファイルを実行する方法
なので一定間隔でPythonファイルを実行できるコードを紹介します。一定間隔でコードを実行するためにThreadingモジュールをimportして使います。コードは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
thread_handler.py import time import threading import subprocess def wait(): time.sleep(5) def cmd_exe(): # pythonファイルを呼び出す subprocess.call("python auto_follow.py") print("------------------------------------------------------") method_list = [wait, cmd_exe] threads = [] current_time = time.time() for i in range(1, 11): for method in method_list: t = threading.Thread(target=method) t.start() threads.append(t) for t in threads: t.join() |
timeモジュールについて
timeをimportしていますが、今回コードには記載していません。一応説明しておくとtime.time()で処理の実行時間を取得できます。プログラムの開始と終了時にtime.time()で値を保持し、終了時の値から開始時の値を引けば処理の実行時間が取得できるようになります。処理の実行時間を測る必要がある場合に使用してください。
pythonファイルからコマンドを実行する方法
上記のコードではsubprocessを使用しています。commandsモジュールを使用する方法もありますが、最近はsubprocessを使用するのが一般的です。subprocessモジュールを使用すればコマンドを実行でき、外部ファイルを実行することも可能となります。
使い方は下記のとおりです。
subprocess.call(“実行したいコマンド”)
これでコマンドが実行できます。簡単ですね!
間隔を設定する
1 2 |
def wait(): time.sleep(5) |
処理を待機させるためにtimeモジュールのsleepメソッドを使います。sleepの引数は秒単位で設定することができます。上記のコードだと5秒待機するという意味です。ループ内でtime.sleep(5)を使用すれば5秒間隔で処理を実行することになります。これでタイトルにある一定間隔でpythonファイルを実行することが可能となりました。
なぜ一定間隔で実行する必要があるのか?
一定間隔で処理を実行させる目的はTwitterAPIの制限にかからないために必要です。間隔を1時間とかにしてフォロー30人くらい行えば24時間で700人以上のフォローが可能です。まぁ1日に720人フォローしたら間違いなくBANされると思いますが。。。一定時間でコードを実行できれば後は1日1回このコードを叩くだけで楽ちんでフォロ―を集めることができるので是非参考にしてください。
最後に
一定間隔で実行するコードをサーバーに置いて実行させようと思いましたが、筆者が使用しているさくらレンタルサーバーではpython3.7が使用できませんでした。そもそもroot権限がないのでsudoコマンドを使用することもできません。。。
さくらレンタルサーバーのpythonバージョンは2.7.6です。。。安易にバージョンを上げるべきではないというのはわかりますが、せめてpython3.7を使える環境を用意してほしいです!
今回の記事は以上となります。最後まで読んで頂きありがとうございます。