記事公開日
最終更新日
生成Aiで python プログラミング例 ファイルのドラッグ保存

今回は、pythonを使ったプログラミングの紹介です。
前回は、VBSを使ったファイルリスト書き出しスクリプトをAiにコーディングしてもらいました。
今回は、pythonを使って見ることにしました。
pythonには、だいぶ前から興味がありました。したがって、動かす環境だけは、整えておりました。
その時は、導入編の動画を見ながら、簡単なもので使っても見ました。
それから、数年経ってすっかり忘れてました。
python コーイング
生成Aiに指示
ディスクトップ上に特定のアイコンを用意して、そこに様々なファイルをドラックする
ドラックしたファイルは特定の決まったフォルダーに移動する。
移動したファイル名や移動した日付などを エクセルシートに追加記述する
このようなスクリプトをPythonでお願い
生成Aiがコーディング
画像では、割愛している部分が多いですが、プログラムやのの解説なども表示されました。

中略

実行
・コーディングしてくれたデータをコピーして、メモ帳などのエディターで、◯◯◯.py (パイソンファイル)を作成する。
・コーディング内の、ファイルパスは、書き換えて置く必要があります。
ドラックする空のフォルダー(ディスクトップが作業しやすい)
ドラッグしてたファイルの保存先フォルダーの場所
保存したファイルリスト用のエクセルファイルの場所
ディスクトップ上の、パイソンファイルと、ドラック用の空フォルダーの画像

コマンドプロンプトにてプログラムを実行します。、
> python ◯◯◯.py
何も動いて無いようですが、プログラムは実行開始してます。
保存したいファイルや、フォルダーをドラッグします。
ドラックしたファイルは、記述したフォルダーに移動します。

結果、ドラックして移動保存したファイル

結果 ドラックして移動したファイルの情報をリスト化

生成したパイソンファイル
ファイルを操作するプログラムになっているので注意
import os
import shutil
from datetime import datetime
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from openpyxl import Workbook, load_workbook
# 監視するフォルダのパス
watch_folder = r'C:\Users\saneiprint\Desktop\WatchFolder'
# 移動先のフォルダ
destination_folder = r'C:\Users\saneiprint\DestinationFolder'
# ログを記録するExcelファイルのパス
log_file = r'C:\Users\saneiprint\log.xlsx'
# Excelファイルが存在しない場合は作成
if not os.path.exists(log_file):
wb = Workbook()
ws = wb.active
ws.append(["File Name", "Date Moved"])
wb.save(log_file)
def log_to_excel(file_name):
wb = load_workbook(log_file)
ws = wb.active
ws.append([file_name, datetime.now().strftime('%Y-%m-%d %H:%M:%S')])
wb.save(log_file)
class Watcher(FileSystemEventHandler):
def on_created(self, event):
if not event.is_directory:
file_name = os.path.basename(event.src_path)
shutil.move(event.src_path, os.path.join(destination_folder, file_name))
log_to_excel(file_name)
if __name__ == "__main__":
event_handler = Watcher()
observer = Observer()
observer.schedule(event_handler, watch_folder, recursive=False)
observer.start()
try:
while True:
pass
except KeyboardInterrupt:
observer.stop()
observer.join()
以上
どうですか、すっかり忘れていたpythonですが、思ったようなプログラムになっているようには見えます。
本当に、使えるようにものにするには、仕様をもっと練る必要はありそうですが、



