戻る

Jupyter labの使い方

2025/02/21

概要

ホームページの運用管理の効率アップのため時々自作のpythonプログラムを使っている。いまいち不明な点がありながら、試行錯誤の結果オーライでそのまま使っているが、プログラムがうまく動作しないことがある。

最近ChatGPTの丁寧なガイドで垣根が低くなり新しいプログラム言語を以前より容易に書けるようになった。

Pythonプログラムの動作環境としてVSCodeで実行している。VSCodeはとても便利なエディターだが何十年もメモ帳に慣れているものには余計なことまでしてくれるようで使いにくい。ChatGPTに相談したところJupyter labを勧めてくれた。

JupyterLabは、Jupyter Notebookの進化版であり、対話型のデータ分析やプログラミングを行うのに便利な統合環境です。Pythonを使ったデータ処理や可視化、機械学習の実験などに適しています。

ということで、ChatGPTでpythonプログラムを書いてもらって、Jupyter Labで稼働させてみた。

ChatGPTにPythonプログラムのプロンプト

まずはChatGPTにpythonプログラムを書いてもらう。

フォルダーにjpgファイルが複数格納されている。 ファイルの名前を拡張子は除いて次のhtmlタグの<p>と</p>の間abcの位置に書き込みたい。 jpgファイルが格納されているフォルダー名は"img"、出力は"out.txt"と固定の名前。
<div id="frame1"><img src="2024/2025_0217_01.jpg" class="image"></img><p>abc</p></div>

pythonプログラムを書いて

以下のPythonプログラムは、"img"フォルダー内のすべてのJPGファイルのファイル名(拡張子なし)を抽出し、それを指定のHTMLタグの <p>abc</p> の abc の位置に埋め込んだ形式で out.txt に保存します。

import os # 画像フォルダーのパス img_folder = "img" output_file = "out.txt" # ファイル一覧を取得(JPGのみ対象) jpg_files = [f for f in os.listdir(img_folder) if f.lower().endswith(".jpg")] # HTMLフォーマットに変換 div_template = '<div id="frame1"><img src="2024/{filename}.jpg" class="image"></img><p>{name}</p></div>' # HTMLコードを生成 html_content = "\n".join( div_template.format(filename=os.path.splitext(f)[0], name=os.path.splitext(f)[0]) for f in sorted(jpg_files) ) # 出力ファイルに保存 with open(output_file, "w", encoding="utf-8") as f: f.write(html_content) print(f"HTML content has been saved to {output_file}")

jpg_files = [f for f in os.listdir(img_folder) if f.lower().endswith(".jpg")] を説明して

このコード行: python jpg_files = [f for f in os.listdir(img_folder) if f.lower().endswith(".jpg")] は、以下のような処理を行っています。 1. `os.listdir(img_folder)`: - `os.listdir(img_folder)` は、指定されたフォルダー `img_folder` に存在する すべてのファイルとフォルダーの名前 をリストとして取得します。 2. リスト内包表記 `[f for f in os.listdir(img_folder) if ...]`: - これは リスト内包表記 (list comprehension) を使って、新しいリスト `jpg_files` を作成する部分です。 - `f for f in os.listdir(img_folder)` は、`img_folder` 内のすべてのファイル・フォルダーを1つずつ `f` に代入しながら処理します。 3. `.lower().endswith(".jpg")`: - `f.lower()` は、`f` のファイル名を小文字 (`lowercase`) に変換します。 - 例: `"IMG_001.JPG"` → `"img_001.jpg"` - `.endswith(".jpg")` は、文字列が `".jpg"` で終わるかをチェックします。 - これにより、大文字・小文字の違い (`.JPG` や `.Jpg` など) に関係なく `.jpg` ファイルだけをリストに含めます。 4. `jpg_files` に格納されるデータ: - `img` フォルダー内に以下のファイルがあった場合: IMG_001.JPG image002.jpg document.pdf photo.PNG - `jpg_files` に格納されるリストの内容は: python ["IMG_001.JPG", "image002.jpg"] となり、`.pdf` や `.png` ファイルはリストから除外されます。 まとめ このコードは、フォルダー `"img"` 内の 拡張子が「.jpg」のファイルのみを抽出し、リスト `jpg_files` に格納するためのものです。

Jupyter Labの導入

ChatGPTで生成されたpythonプログラムの実行環境をWindowsのコマンドプロンプトからJupyter Labを導入して作成する。

Jupyter Labの使い方

最初に今後の作業のためフォルダーを作成する


感想

pythonは初心者レベルの知識しか持ち合わせていないが、ChatGPTでプロンプトして作成したプログラムで一瞬にして目的のファイルが出来てしまった。

Jupyter Labも慣れると使いやすい。

最初は用語が分からないが使っていると分るのはどの分野でも同じ。

今回、以前から使っていたpythonプログラムがうまく動かなかったため新しくpythonプログラムを作った。

運用管理しているホームページで、投稿者が写真画像の名前を日本語でコメントしてくるケースがある。例えば "公園入口.jpg"のように。写真の枚数が多いと結構面倒で、単純作業を手作業ではやる気にならない。以前のプログラムがうまく動かなかったのは、多分日本語のカタカナコードの問題で、手作業で書き直せば回避できるだろうとは思うが、ここではプログラムでそれを処理したいと思った。

作ったのはこちら 支笏湖氷濤まつり


戻る