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

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

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

python 迷惑電話管理

にゃあにゃあ
ぱいぱい

知らない電話番号から

の 
着信

大漁


なめたら あかんぜよ!



Microsoft Copilot様に

へるぷ みぃ~

した

結果・・・
結果・・・
結果・・・ ぐちゃぐちゃ;;

【Gemini】様 に 尻ぬぐいを
お願いすることに


# ==== pythonスクリプト 【Gemini】様

# # ==============================
# 2026/03/24 18:04:09
# 【Gemini】様 Rev.D

# ### 🛠️ Rev.D:桁数チェックと整形ロジックの強化
# 「明らかに日本の番号としておかしい桁数」を弾きつつ、整形もさらに賢くしましょう。
# #### 1. 入力時に「桁数オーバー」を警告する
# `input_phone` 関数を改造して、日本の一般的な桁数(10桁または11桁)以外は再入力を促すようにします。
# #### 2. 整形ロジックをより緻密にする
# フリーダイヤルが12桁(0120-xxx-xxxxx)といった「ありえない形式」にならないようガードを固めます。

# ### 🚀 Rev.D 完成コード(連続入力・厳格チェック版)
# ```python



import csv
import os
from datetime import datetime
from collections import Counter

CSV_PATH = r"L:\pypy\着信履歴\着信履歴.csv"
YEAR = 2026

def format_phone(num: str) -> str:
    """日本の電話番号形式に合わせたハイフン整形 (Rev.D)"""
    length = len(num)
    
    # 1. フリーダイヤル (0120, 0800) -> 10桁限定
    if num.startswith(("0120", "0800")) and length == 10:
        return f"{num[0:4]}-{num[4:7]}-{num[7:10]}"
    
    # 2. 携帯・IP電話 (070, 080, 090, 050) -> 11桁限定
    if num.startswith(("070", "080", "090", "050")) and length == 11:
        return f"{num[0:3]}-{num[3:7]}-{num[7:11]}"
    
    # 3. 固定電話 (10桁限定)
    if length == 10:
        if num.startswith(("03", "06")): # 東京・大阪
            return f"{num[0:2]}-{num[2:6]}-{num[6:10]}"
        else: # その他市外局番 (横浜045など)
            return f"{num[0:3]}-{num[3:6]}-{num[6:10]}"
            
    # 整形ルールに合わないものはそのまま返す
    return num

def input_phone():
    """電話番号の入力と桁数チェック"""
    while True:
        num = input("電話番号を入力 (数字のみ): ").strip()
        if not num:
            print("⚠ 電話番号は必須入力です。")
            continue
        if not num.isdigit():
            print("⚠ 数字のみで入力してください。")
            continue
        
        # 桁数チェック (日本の電話番号は通常10か11桁)
        if len(num) < 10 or len(num) > 11:
            print(f"⚠ 桁数が異常です ({len(num)}桁)。")
            confirm = input("本当にこの番号で登録しますか? (y/n): ").lower()
            if confirm != 'y':
                continue
        
        return num

def show_ranking():
    """ランキング表示(整形を適用して見やすく)"""
    if not os.path.exists(CSV_PATH): return
    with open(CSV_PATH, "r", encoding="utf-8") as f:
        rows = list(csv.reader(f))[1:]
    
    # 5列目(元番号)の引用符を除去して集計
    numbers = [row[4].lstrip("'") for row in rows if len(row) > 4 and row[4]]
    if not numbers: return

    ranking = Counter(numbers).most_common(10)
    print("\n=== 迷惑電話ランキング(上位10件) ===")
    for i, (num, count) in enumerate(ranking, start=1):
        # 表示時にも整形をかける
        print(f"{i}位: {format_phone(num):<15} ({count}回)")

def main():
    if not os.path.exists(os.path.dirname(CSV_PATH)):
        os.makedirs(os.path.dirname(CSV_PATH), exist_ok=True)
    if not os.path.exists(CSV_PATH):
        with open(CSV_PATH, "w", newline="", encoding="utf-8") as f:
            writer = csv.writer(f)
            writer.writerow(["日時", "電話番号", "カテゴリ", "メモ", "元番号"])

    print("--- 迷惑電話入力モード(終了するには月日に '9999' を入力) ---")
    
    while True:
        md = input("\n月日を入力 (例:0324 / 終了:9999): ").strip()
        if md == '9999': break
            
        try:
            if len(md) != 4 or not md.isdigit(): raise ValueError
            month, day = int(md[:2]), int(md[2:])
            datetime(YEAR, month, day)
        except ValueError:
            print(f"⚠ 日付が不正です: {md}")
            continue

        # 時間入力
        while True:
            hm = input("時間を入力 (例:1059): ").strip()
            if len(hm) == 4 and hm.isdigit():
                h, m = int(hm[:2]), int(hm[2:])
                if 0 <= h <= 23 and 0 <= m <= 59:
                    hour, minute = h, m
                    break
            print("⚠ 正しい時間を入力してください。")

        # 電話番号入力
        raw_num = input_phone()

        # 保存
        dt_str = datetime(YEAR, month, day, hour, minute).strftime("%Y/%m/%d %H:%M:%S")
        formatted_num = format_phone(raw_num)
        quoted_raw = f"'{raw_num}"

        with open(CSV_PATH, "a", newline="", encoding="utf-8") as f:
            writer = csv.writer(f)
            writer.writerow([dt_str, formatted_num, "", "", quoted_raw])

        print(f"✅ 記録完了: {formatted_num}")
        show_ranking()

if __name__ == "__main__":
    main()


# ### 📝 改良のポイント
# 1.  **「本当に登録しますか?」の壁**: 桁数がおかしいときに一度止めるようにしました。これで「080023458821(12桁)」のようなミス入力を防げます。
# 2.  **ランキングの見た目**: `format_phone(num):<15` とすることで、番号の長さに寄らず桁を揃えて表示するようにしました。
# 3.  **連続入力**: `while True` で囲んでいるので、1件終わるごとに次の入力を受け付けます。
# **これで実行してみて、変な番号が紛れ込むストレスは減りそうでしょうか?** もし「もっと自動で桁数ミスを直してほしい(例:0120の後の余計な数字を消すなど)」といったご要望があれば、さらに踏み込みます!
# # ==============================

やでやで

 

他力本願な

お年頃♪

 

じじぃ~

脳内~ 羽田~鹿屋

ぶひぶひ
どんどん


マイルで どっかに行っちゃうもんね!



鹿児島 に 行けるとして

鹿児島県にある
海上自衛隊
鹿屋航空基地
隣接の

鹿屋航空基地史料館

にでも 行くべ~~~



行程 MAP

作ってみた!


ぶんぶん 飛んでいくべ

妄想する

お年頃♪

じじぃ~

Wiz日誌 綺麗なお姉さん・・・

わんわん
にゃあにゃあ

毎度毎度

日々日々


Wizardry で
ありまする

【Gemini】様に
お願いして

綺麗な ELF の お姉さん



酒場で くつろぐ

職業は 魔法使い

で 描いて!

と オネダリ・・・


※作画 【Gemini】様

            THE

DRAGON'S REST
ドラゴンズ・レスト



【Gemini】様が 著作権に配慮して
架空の 酒場の名前 らしい・・・

 

ぷれすて2 悪戦苦闘;;

わんわん
こけこっこ~

なんか

最近


悪戦苦闘
  四苦八苦
    七転八倒
      魑魅魍魎


の連続で ありまする;;

なんでやねん!

【Gemini】様に
いただいた

あま~~~い お言葉を

実行したら・・・

ぎゃあ~~~す;;

ちゃんと

確認しなかった

じじぃ~



悪いのか?

ちゃんと 説明しなかった
【Gemini】様 が
悪いのか・・・

よ~~~わからん

わかること
事実


半日 無駄にした

2000円ちょっと

無駄になった;;

くすん;;


貧乏な
お年頃♪

じじぃ~

 

遊んでみた! 林檎Book てんこ盛り

わんわん
がうがう

どんな人が 買うの???
なにに 使うの???


14インチ
てんこ盛り


724,800円

14インチMacBook Pro、カラーはスペースブラック、開いた状態、ディスプレイ
、側面の外観、薄いデザイン、右側面のポート:SDXCカードスロット、Thunderb
olt 4、HDMI、左側面のポート:MagSafe 3、2つのThunderbolt 4、ヘッドフォン
ジャック、上から見た外観、丸みを帯びた四隅、中央に光沢のあるブラックのAp
pleのロゴ

モデル。 サイズを選択してください。

14インチ 脚注 1
M5、M5 Pro、またはM5 Maxチップとの組み合わせで選択できます。
279,800円から
、または11,658円/月月額の24回払いから 脚注 †

16インチ 脚注 1
M5 ProまたはM5 Maxチップとの組み合わせで選択できます。
449,800円から
、または18,741円/月月額の24回払いから 脚注 †

カラー。 好きなカラーを選びましょう。
色 - スペースブラック
スペースブラック
シルバー

ディスプレイ。 ワークフローに最適なスクリーンタイプを選びましょう。

標準ディスプレイ
反射率が低くなるように設計。設置された環境で映り込みを抑えます。
搭載

Nano-textureディスプレイ
明るい光源がある空間でも映り込みや反射をさらに抑えます。
+ 24,000円
ディスプレイ選びに迷ったら
違いをチェックして、あなたにぴったりのオプションを見つけましょう。
詳細を表示

チップ。 こちらのパワフルなオプションから選びましょう。

M5チップ
次世代のスピードとパワフルなオンデバイスAIを届けます。毎日のパーソナルな
タスクも、プロフェッショナルやクリエイティブなタスクも思いのまま。
10コアCPU、10コアGPU、16コアNeural Engine
279,800円から
、または11,658円/月月額の24回払いから 脚注 †

New
M5 Proチップ
より負荷の高いワークフローをこなすための一段と優れたパフォーマンスと、さ
らに大きなメモリのオプションを提供。
16コアNeural Engineを搭載した2つのオプションから選べます
369,800円から
、または15,408円/月月額の24回払いから 脚注 †

New
M5 Maxチップ
極めて負荷の高いワークフローにパワーを発揮。Appleのプロ向けノートブック
の中で最も先進的なチップ。
16コアNeural Engineを搭載した2つのオプションから選べます
599,800円から
、または24,991円/月月額の24回払いから 脚注 †

処理能力を選ぶ。

18コアCPU、32コアGPU
− 45,000円

18コアCPU、40コアGPU
処理能力とグラフィックレンダリングの速度を引き上げます。大規模言語モデル
の実行や8K動画作業などのタスクが加速します。
チップ選びに迷ったら
オプションを比較して最適なものを見つけましょう。
詳細を表示
カスタマイズ。 ベースモデルをそのままを選ぶことも、変更することもできま
す。
ユニファイドメモリ
メモリを追加すると、より多くのアプリを同時に実行でき、マルチタスキングが
一段とスピーディーかつスムーズになります。
現在の構成
48GB
現在のチップでは、48GB、64GB、128GBから選択可能

編集
ユニファイドメモリ
SSDストレージ
容量に余裕があると、アプリ、写真、映画、音楽、そのほかのファイルにすばや
くアクセスできます。
現在の構成
2TB
現在のチップでは、2TB〜8TBから選択可能

編集
SSDストレージ
電源アダプタ
現在の構成
96W USB-C
キーボード
現在の構成
日本語(JIS)
6種類の言語から選択可能

編集
キーボード
プロ向けアプリ。 あなたのMacで、もっといろいろなことを。
新しいMacを購入すると、Apple Creator Studioを3か月間無料で体験できます。
Final Cut Pro、Logic Pro、Pixelmator Proのようなパワフルなアプリと、たく
さんの機能を詰め込んだオールインワンのサブスクリプションです。 さらに詳
しくApple Creator Studio

ご希望に応じて、Final Cut ProとLogic Proのプリインストール版を単体で購入
することもできます。


Final Cut Pro

選択しない
− 50,000円

選択したMacにプリインストールする
使用許諾契約を見るFinal Cut Pro(新規ウインドウで開きます)

Logic Pro

選択しない

選択したMacにプリインストールする
+ 30,000円
使用許諾契約を見るLogic Pro(新規ウインドウで開きます)
プリインストールのクリエイティブツールにできること
パワフルなプロ向けアプリを使って、箱から出してすぐにできることを見てみま
しょう。
詳細を表示
Trade In。下取りに出すと、新しいMacが割引に 脚注 ‡。


下取りを追加する
いくつかの質問に答えるだけで、おおよその下取り額がわかります。

下取りを利用しない

下取りとはどんな仕組みで⁠すか?
手順を一つひとつわかりやすく説明します。
詳細を表示
AppleCare+。 あなたの新しいMacを守ろう。


AppleCare+を追加
16,400円/年年額
過失や事故による損傷に対する修理などのサービス(利用回数の制限なし) 脚
注 ±
Apple認定技術者による、Apple純正パーツを使った修理サービス
Mac、バッテリー、付属アクセサリが対象
Appleの専任スペシャリストへの優先アクセス

AppleCare+のどちらのお支払い方法をご希望ですか?

3年間の保証とサポート
44,800円

キャンセルするまで年額料金をお支払い
新しいデバイスを一括払いで購入した場合に利用可能.
16,400円/年年額
年間プランの保証期間は1年間で、解約しない限り毎年自動的に更新されます。A
ppleCare+の保証期間と毎年のお支払いは、デバイスの発送日、または店舗での
受け取り日に始まります。0120-277-535への電話または規約に記載されている方
法で、いつでも解約できます。

AppleCare+を追加しない
AppleCare+の仕組みは?
過失や事故による損傷に対する修理などのサービスを利用回数の制限なく受けた
り、Appleの専任スペシャリストに優先的に問い合わせたりできます。保証の内
容をご確認ください。
詳細を表示
新しいMacBook Pro。
構成を確認しましょう。
M5 Maxチップ搭載14インチMacBook Pro - スペースブラック
18コアCPU、40コアGPU、16コアNeural Engine

Apple Intelligence 脚注 §
48GBユニファイドメモリ
2TB SSDストレージ
標準ディスプレイ
96W USB-C電源アダプタ
Touch ID搭載バックライトMagic Keyboard - 日本語(JIS)
Thunderbolt 5ポート x 3、MagSafe 3ポート、3.5mmヘッドフォンジャック、HDM
Iポート、SDXCカードスロット
最大4台の外部ディスプレイに対応

Final Cut Proライセンス
本日のご注文のお届け予定日:

724,800円

30,200円/月の月額 24回払い支払い回数
 (二重短剣符の脚注)
 脚注 †  (税込)