60歳を迎えて、思うこと。 -5ページ目

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

終活 おんがく ふぁいる

なんだべさ

HDDの 重複整理

流れで

音楽ファイル

MP3
WAV


も ごりごり 削って行く!


まとめ
C:\_CC-GOMI
71,541,952,512 BYTES 17273 Files
36,871,753,728 BYTES  7316 Files
21,263,093,760 BYTES  3673 Files
90,350,219,264 BYTES 17275 Files
12,830,076,928 BYTES  2443 Files

やく 
230GB

ふっ!

消してやったぜ!

収集がつかない
お年頃♪

じじぃ~

 

本日 「も」 曇天 なり

過日

HDD に 
退避 させておいた

大量の で~~~た

出土してしまった;;

おっかしいな???

購入した 
HDD

初期不良じゃないなら!

一週間 くらいで


消しているはず!
  消す予定!
    消したつもり!


なぜ???

いまに なって

ひょっこり

出てくるんだ;;

必死に

現役 で~~~た

照合 比較 重複

ちぇっく!!!


□ E:\重複まとめ!
                  188,422,545,408 BYTES 100.0% 119046 Files
重複-GOMI-1      1,023,037,440 BYTES   0.5%   6191 Files
重複-GOMI-2      8,097,230,848 BYTES   4.3%   6493 Files
重複-GOMI-3     31,133,065,216 BYTES  16.5%  76133 Files
重複-GOMI-4    148,163,469,312 BYTES  78.6%  30166 Files
重複-GOMI-5            5,742,592 BYTES   0.0%     63 Files


188GB
11満ふぁいる


ひ~~~ろ~~~困憊

じじぃ~

か~ごめ か~ごめ ;;

いま は むかし

HDD が 
不調になったので

緊急回避非難退避



した! 下! 舌!

しい HDD が
南米の密林から

遠路はるばる

と~~~ちゃく!

うっれしいな♪
  うっれしいな♪
    うっれしいな♪

運用を 開始して

幾歳月

そして・・・

きょう!

ん?

なんだ? このフォルダ・・・

開けて びっくり
玉手箱


緊急回避非難退避

した

データが 鎮座!!!
  データが 鎮座!!!
    データが 鎮座!!!

ぎゃあ~~~


くすん;;

泣きたい
お年頃♪

じじぃ~

Windows_XP めも

にゅあ~~~



今更


WIndows xp

使う

じじぃ~ が

居た!

今日 ソフトウェア

あれや これや

CD-ROM の

  1994年のニュース
  CENTIMENTAL_WINGS
  World_Atlas
  感動素材フォント50
  恐竜図鑑


※いんすと は できた!

起動も した が!
あれ~~~こんなんだっけw

windows 11では
SETUP.EXE
ぽちっとな!

対応してねぇ~
だよ

インスト―ルすら
してくれない;;

Windows xp は

偉大であるw


が!
しかし!

ドラゴンクエストベンチ
バイオハザードベンチ

セットアップアするけど
途中でエラー

たぶん


Windows xp

非対応???

VIDEO が
CPU内蔵だから
むくれている???

パソコンの 
ポンコツ度合いw

測定できね~~~


ぽんこつな
お年頃♪

じじぃ~

python 指名手配

どっすん ばったん

ファイル整理の
こころ強い 見方 味方



なるか???

【Gemini】様 に

ファイル捜索の
スクリプトを 作成して
いただいたので

Online Backup

# ### 🛠 修正・改造のポイント
# 1.  **カレントディレクトリの移動**: ご指定通り、スクリプトの場所に移動する処理を追加しました。
# 2.  **正規表現の刷新**: 
#     * `abcd****` の「****」部分を半角英数字4桁 `[a-zA-Z0-9]{4}` に対応させました。
#     * その後の連番(`(2)` や `_1` など)があってもなくても一致するように `.*`(任意の文字列)をパターンに組み込みました。
# 3.  **画像形式の網羅**: `bmp, jpg, jpeg, png, gif` のすべてを検索対象に含めました。
# 4.  **jpg と jpeg の区別**: リクエスト通り、内部処理としてこれらを別扱い(個別の拡張子として判定)するように構成しています。

# ### 📌 改造版:指名手配.py


import os
import re
from pathlib import Path

# ---------------------------------------------------------
# カレントディレクトリをスクリプトのディレクトリに変更
# ---------------------------------------------------------
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
print(f"Current directory: {os.getcwd()}")

# ---------------------------------------------------------
# 設定
# ---------------------------------------------------------
SEARCH_DRIVES = ["D"]  # 捜査対象ドライブ
LOG_FILE = Path(r"L:\pypy\指名手配\指名手配捜査結果-恐竜.txt")

# ターゲットとなるプレフィックス(接頭辞)
IMAGE_TARGETS = [
"ALLO",
"WEIR",
"WARM",
"TWOF",
"TUOJ",
"TUAT",
"TSIN",
"TRYA",
"TROO",
"TRIL",
"TRIC",
"TRIA",
"TIME",
"TEET",
"TARB",
"TALL",
"TALE",
"STRU",
"STOR",
"STEG",
"STAU",
"SPEE",
"SMAL",
"SITE",
"SHFT",
"SHAN",
"SCEL",
"SAUR",
"SALT",
"RSEA",
"RHOE",
"RHAM",
"RECO",
"RECB",
"RAIR",
"QUET",
"PTEN",
"PTEE",
"PSIT",
"PROT",
"POLA",
"PLES",
"PLAT",
"PLAN",
"PINA",
"PIAT",
"PARK",
"PARA",
"PALE",
"PACH",
"ORNI",
"NODO",
"MYTH",
"MUTT",
"MUSE",
"MURA",
"MOSC",
"MOSA",
"MINM",
"MINE",
"METE",
"MEGA",
"MEAT",
"MDET",
"MASS",
"MAME",
"LONG",
"LESO",
"LEAE",
"KRON",
"KENT",
"INDX",
"IGUA",
"IGNA",
"HYPS",
"HTRO",
"HTHR",
"HSTG",
"HSAU",
"HORN",
"HERR",
"HELP",
"HCER",
"HANK",
"GOBI",
"GLOS",
"GALL",
"FTFB",
"FTFA",
"FOSS",
"FOOT",
"FIND",
"FAMI",
"EXTI",
"EUOP",
"EUDI",
"ERYO",
"ELAS",
"EDET",
"DSOC",
"DRYO",
"DROM",
"DNMU",
"DLAN",
"DIPL",
"DIMO",
"DIME",
"DIET",
"DHUS",
"DEIN",
"DDEF",
"DDEC",
"CYNO",
"CRET",
"COVE",
"COTH",
"CORY",
"COMP",
"CLAW",
"CERA",
"CDAC",
"BRON",
"BRAC",
"BIRT",
"BEFR",
"ANCH",
"AMMO",
"ALLO",
"ALBE",
"AFTR",
]

# 対応する拡張子リスト
# EXTENSIONS = ["bmp", "jpg", "jpeg", "png", "gif"]
EXTENSIONS = ["bmp"]

# ---------------------------------------------------------
# 正規表現パターンの作成
# ---------------------------------------------------------
# パターン解説:
# ^          : 文字列の先頭
# {prefix}   : abcd など
# [a-zA-Z0-9]{4} : 半角英数字4桁
# .* : その後の連番など(あってもなくても良い)
# \.         : ドット
# {ext}$     : 指定の拡張子で終わる(大文字小文字無視)
def get_patterns():
    patterns_dict = {}
    for ext in EXTENSIONS:
        patterns_list = []
        for prefix in IMAGE_TARGETS:
            # 【解説】
            # ^           : 行頭
            # {re.escape(prefix)} : 指定された文字列(SMALなど)と「そのまま」一致(大文字小文字区別あり)
            # [a-zA-Z0-9]{4} : 半角英数字4桁
            # (?![a-zA-Z0-9]) : その直後に英数字が続かないこと(Recognize対策)
            # .* : 連番などの任意の文字列
            # \.          : ドット
            # (?i:{ext})$ : 【ここがポイント】拡張子の部分だけ (?i: ) で囲むことで
            #               そこだけ大文字小文字を無視(.bmp も .BMP もOK)
            pattern = re.compile(
                rf"^{re.escape(prefix)}[a-zA-Z0-9]{{4}}(?![a-zA-Z0-9]).*(?i:\.{ext})$"
            )
            patterns_list.append(pattern)
        patterns_dict[ext] = patterns_list
    return patterns_dict

EXT_PATTERNS = get_patterns()

# ---------------------------------------------------------
# ログ出力
# ---------------------------------------------------------
def log(message: str):
    # ログフォルダがない場合に備えて作成
    LOG_FILE.parent.mkdir(parents=True, exist_ok=True)
    with LOG_FILE.open("a", encoding="utf-8") as f:
        f.write(message + "\n")
    print(message)

# ---------------------------------------------------------
# ファイル名がパターンに合致するか判定
# ---------------------------------------------------------
def match_patterns(filename: str, ext: str) -> bool:
    patterns = EXT_PATTERNS.get(ext.lower())
    if not patterns:
        return False

    for p in patterns:
        if p.match(filename):
            return True
    return False

# ---------------------------------------------------------
# ドライブ検索
# ---------------------------------------------------------
def search_drive(drive: str):
    drive_root = f"{drive}:\\"
    found_any = False

    if not os.path.exists(drive_root):
        log(f"{drive}ドライブは存在しません(アクセス不可)")
        return

    # os.walkでサブフォルダまで全検索
    for root, dirs, files in os.walk(drive_root):
        for file in files:
            # 拡張子を取得(最後のドット以降)
            parts = file.split(".")
            if len(parts) < 2:
                continue
            ext = parts[-1].lower()

            if ext in EXT_PATTERNS:
                if match_patterns(file, ext):
                    full_path = os.path.join(root, file)
                    log(f"[発見] {full_path}")
                    found_any = True

    if not found_any:
        log(f"{drive}ドライブには該当ファイルは存在しません")

# ---------------------------------------------------------
# メイン処理
# ---------------------------------------------------------
def main():
    log("=== 指名手配ファイル 捜査開始 ===")

    for d in SEARCH_DRIVES:
        log(f"--- {d} ドライブ捜査開始 ---")
        search_drive(d)

    log("=== 捜査終了 ===\n")

if __name__ == "__main__":
    main()

# ### ✅ チェック内容と改善の解説
# * **正規表現の柔軟性**: 
#     `abcd1234.bmp` はもちろん、`abcdA1B2_ver2.bmp` や `abcd9999(2).bmp` もヒットするように設計しました。`.*` を入れることで、4桁の後の「おまけ文字列」を不問にしています。
# * **ディレクトリ作成の安全策**: 
#     `LOG_FILE.parent.mkdir` を追加しました。もし保存先の `L:\pypy\指名手配\` というフォルダ自体が存在しない場合でも、エラーにならずに自動作成されます。
# * **jpg/jpeg の扱い**: 
#     リスト `EXTENSIONS` に両方入れているため、それぞれ独立してループ処理され、個別にチェックが行われます。
# * **エラー回避**: 
#     ファイル名にドットが含まれない特殊なファイルがあった場合でもエラーにならないよう、拡張子取得部分に `if len(parts) < 2` のガードを入れました。
# これで、あらゆる画像形式と複雑な連番形式に対応した「指名手配」が可能になります!

# # ==============================

にゃあ ごろ にゃあ

これで

あ こっちにも あった
湧いて出た!
解凍したら・・・(防げん)
ドライブ接続したら・・・(防げん)

まあ

なんだ

きっと!

役に・・・
たてば いいなw

じじぃ~