3 便利な Python 自動化スクリプト

10 分間の料理の配達であろうと、オンデマンド サービスで利用可能なコンテンツであろうと、私たちは皆、指先で物事を成し遂げることに慣れています。 単純な機械、組み立てライン、ロボット、またはトランザクション処理用のコンピューターを使用して、世界は常に何かを自動化してきました。 人類は、ありふれたタスクを自動化して機械に委任することで、大きな利益を享受し、快適さを享受してきました。


オリア・ダニレビッチによる写真

プログラミングに関して言えば、Python は非常に人気があり、繰り返しタスクの一部を自動化するために使用される使いやすい言語です。 機械学習と AI が主流になるにつれて、学習が簡単であるため、広く注目を集めています。 電子メールへの返信、ビデオのダウンロード、1 日の特定の時間に一連の受信者にテキスト メッセージを送信する、電子メールを読み上げるなどの単純でありふれたタスクは、Python の助けを借りて簡単に自動化できます。

この投稿では、Python とそのライブラリを使用してデスクトップでの通常のタスクを自動化するための最も便利な 3 つのアプリケーションについて説明します。

マシンをしばらく使用している場合は、ダウンロード フォルダーが乱雑になる可能性が高くなります。 私たちは皆、このような状況に直面し、骨の折れるほど困難な無関係なファイルを手動で削除することに苦労しています。解決策はありますか? そうです。 ファイルの一部を自動的に削除しないのはなぜですか。

ほとんどの場合、インターネットから大量の PDF ファイルをダウンロードすることになるため、以下で共有するスクリプトを使用すると、そのようなファイルを削除できます。 特に、このスクリプトは、提案されたファイルをごみ箱に送るのではなく、すべて削除します。

この自動化をサポートするライブラリが「os」です。 「os」ライブラリのインポートから始めます。 ディレクトリを Downloads ディレクトリに変更します。 ここで「listdir()」関数を呼び出します。この関数は、現在のディレクトリ内のすべてのファイルとディレクトリを一覧表示します。つまり、この場合は Downloads です。 これらのファイルをループし、ファイルが「.pdf」拡張子で終わっているかどうかを確認し、「.remove(file)」メソッドを使用してファイルを削除します。

import os
os.chdir('/Users/macUser/Downloads')
for file in os.listdir():
    if file.endswith(('.pdf')):
        os.remove(file)

選択したファイルを除外しながら、他の条件を追加することもできます。 たとえば、私は通常、「web.whatsapp.com」から画像をダウンロードしますが、これらの画像ファイル名はすべて「Whatsapp」という部分文字列で始まります。

import os
os.chdir('/Users/macUser/Downloads')
for file in os.listdir():
    if file.startswith(("Whatsapp")) and file.endswith((“.png”, “.jpg”)):
        os.remove(file)

上記のコードは、ファイル名が「Whatsapp」で始まるすべての png および jpg ファイルを削除します。

ダウンロード フォルダがきれいになったので、デスクトップにゴーストを招待しましょう。 Pyautogui は、マウス ポインターの移動とキーボード キーの押下を簡単に自動化できる Python ライブラリです。

以下のコードは、「このデスクトップは自動化されています!」というテキストを入力します。 既に開いている TextEdit ファイルに。 まず、ライブラリ「pyautogui」をエイリアス名「pag」でインポートします。 ダブルクリックしたい場所の座標を引数に「doubleClick()」メソッドを呼び出します。 この場合、座標は x = 150 および y = 150 として選択されます。

コンピューター画面では、座標 0.0 は左上隅から始まり、下に移動すると Y 軸の値が増加し、右に移動すると X 軸の値が増加することに注意してください。

import pyautogui as pag
pag.doubleClick(150, 150)
pag.write('This Desktop is Automated!', interval=0.25)

ダブルクリック座標は開いているテキスト ファイル内でバインドされるため、ファイル内でカーソルが点滅します。 「doubleClick()」の代わりに「click()」メソッドを呼び出すこともできます。 「pyautogui.write()」は、点滅カーソルがある場所にテキストを追加します。

イベントのシーケンスは、下の GIF のようになります。

3 便利な Python 自動化スクリプト

Pyautogui では、ファイルの移動、ファイルの保存、テキストの選択とコピー、スクリーンショットの撮影もできるため、デスクトップ自動化のための多用途のオプションになります。

繰り返しごとに円の半径や正方形の一辺の長さを小さくすることで、らせんのような描きにくいイメージを描くこともできます。 公式ドキュメントの以下のコードは、このアプリケーションを強調しています。

distance = 200
while distance > 0:
    pyautogui.drag(distance, 0, duration=0.5)   # move right
    distance -= 5
    pyautogui.drag(0, distance, duration=0.5)   # move down
    pyautogui.drag(-distance, 0, duration=0.5)  # move left
    distance -= 5
    pyautogui.drag(0, -distance, duration=0.5)

3 便利な Python 自動化スクリプト
出典: Pyautogui の公式ドキュメント

今日は長時間のフライトがあり、デスクトップで見るためにいくつかの YouTube ビデオが必要です。 「pytube」を使えば簡単です。 pytube をインポートし、ビデオ URL を指定して Youtube().streams.first() メソッドを呼び出すだけです。 出力をビデオ変数に保存してから、ビデオをダウンロードする場所を指定して download() メソッドを呼び出します。

ほとんどのエラーは間違った URL または不完全な URL から発生しているため、try と except を使用して例外処理を追加すると役立ちます。

import pytube
video_url="https://www.youtube.com/watch?v=npA-2ONUqOc"
try:
    video = pytube.YouTube(video_url).streams.first()  
    video.download('/Users/macUser/Downloads')  
    print("Success: The file is downloaded.")
except:
    print("Error: There might be an issue with the url provided.")

コンソールの出力は次のようになります。

Success: The file is downloaded.

ダウンロードしたファイルは、ダウンロード フォルダーに表示されます。

3 便利な Python 自動化スクリプト

この投稿は、日常的に自動化できる多くのタスクを共有し、私たちの生活を楽にすることを目的としています. 投稿に示されている例から明らかなように、このようなタスクを実装するために、Python プログラミングに関する広範で高度な知識は必要ありません。 一歩先を行き、そのような例をもっと学びたい場合は、Al Sweigart による優れた本「Python で退屈なものを自動化する: 完全な初心者のための実践的なプログラミング」を参照してください。

フォルダーのクリーンアップ、YouTube ビデオのダウンロード、デスクトップの自動化などの単純なデスクトップ タスクを自動化する Python の 3 つのアプリケーションをお楽しみいただけたでしょうか。 Python を使用してより多くのタスクを自動化するための提案は、以下のコメント セクションで歓迎します。

ヴィディ・チュー スケーラブルな機械学習システムを構築するために、製品、科学、エンジニアリングの交差点で働く AI ストラテジストであり、デジタル トランスフォーメーションのリーダーです。 彼女は受賞歴のあるイノベーション リーダーであり、作家であり、国際的な講演者でもあります。 彼女は、機械学習を民主化し、誰もがこの変革に参加できるよう専門用語を打ち破ることを使命としています。

Leave a Comment

Your email address will not be published. Required fields are marked *