こうかの雑記

こうかの雑記

昔の懐かしいこと、ubuntuのこと、その他いろいろ

警察署で運転免許証更新時講習を受けてきた

 一つ前の記事で、警察署で運転免許証の更新手続きをしてきたことを載せましたが、今回は更新時講習を受けてきました。

 予約制ということもありますが、田舎の警察署なので受講者も少なく広い会議室にも関わらず20人程と少数でした。コロナを意識した椅子の配置で、本来なら長テーブルに二人ずつというところですが、1テーブルに一人となっていました。

 また講習もコロナ対策を理由に30分の動画が用意されていて、それを見るだけという簡単なものでした。講師による話に代わる内容ということで、法令の改正内容や最近の事故の状況などを説明するもので、いつもの事故場面動画ではありませんでした。なので講師による話はありませんでした。

 こういう講習もよい知れません。内容も簡潔でわかりよく、短時間なので疲れることもありません。

 配布物は「交通教本」と令和2年中の県内交通事故発生状況を示す資料、そして臓器提供意思表示のパンフレットの3種類。

 動画が終わると新しい免許証を受け取って終わりと、極めてあっさりとしたものでした。

 手続きの回、講習の回と2回の警察署への訪問、面倒くさいように思えますが、それぞれ共に短い時間で済み、意外と簡単で良かったと思います。お勤めのある方には抵抗あるかとおもいますが、そうでない方にはお薦めだと思います。といっても優良ドライバーであることが必要ですが。

警察署で運転免許の更新手続きしてきた

 運転免許更新のお知らせはがきが届いたので朝から手続きに行ってきました。  今までは一日で済ませるられる運転免許センターまで行っていたのですが、今回は最寄りの警察署で手続きすることにしました。その理由は次の通り。

  • 退職して時間的に自由であることと、
  • 新型コロナウイルスのこともあり大勢の集まる所に行きたくないこと
  • 視力検査に余裕がもてないこと

 一番気にしていたのは3番目の視力検査です。今回の免許更新検査では視力に自信がないのですよね。メガネ補正で受かれば良いかと思っていました。

 運転免許センターだと大勢の人で混雑し、自分も検査官も気持ちに余裕が無くなるかも知れません。モタモタしていると検査官や後続の人がイライラされるかも知れませんし。

 さて警察署では、予想通り手続きに来る人は少なかったので待ち時間なしでした。(地方だということもありますが)

 視力検査は機械を覗き込む方法で、メガネを掛けたまま測定するものと思っていたら、メガネを外すように言われました。裸眼だとまったく自信ないので焦りました。

 機械の中に表示されるCのマーク(ランドルト環)を見て空いている方向を答えるのですが、何度か間違ってモタモタしていたので、「これは難しいかも。この後、メガネを掛けて追加の検査するのか…」と思っていたら、なんと結果はOKとのこと。メガネ条件も無しです。ちょっと予想外の展開。

 普段の生活でメガネなしでは不自由しているので、この結果は信じられませんでした。

 免許証の写真を撮る際も「メガネ条件無しですのでメガネ外さなくてよいですよ」と言われましたが、「メガネを掛けた顔が普段の顔なので…」と掛けたまま撮って貰いました。

 視力については心配し過ぎだったのかも知れませんが、実際にメガネなしで運転はしたくありません。

 視力に自信の無い方に警察署での手続きがお薦めです。混雑していないので担当の方も余裕で対応してくれますし思いの外、優しいですから。

 後はもう一度、同じ警察署に出向いて講習を受ける日時を予約して一回目は終わりました。

pythonでテキストファイルのエンコード変換

 ダウンロードしたテキストファイルが自分が使っているシステムと違うエンコードがされている場合があります。ubuntu(linux)はデフォルト・エンコードutf-8なのですが、銀行やカード会社からダウンロードしたcsvファイルはShift-jisになっています。大部分の利用者がWindowsですからね。

 これをlibreofficeのCalc(Excel相当のもの)にインポートする時、わざわざエンコード指示を変えてやらないと文字化けしてしまいます。なのでダウンロードした後utf-8に変換して保管するようにしました。

 エンコードを変換くらいなら、わざわざpythonで書かなくても端末画面に慣れた人なら、iconvコマンド、knfコマンドを使えば簡単にできるのですが、今回はpythonスクリプトを書きました。 コマンドの場合、オプションをすぐに忘れてしまうのでね。

 pythonスクリプトではテキストファイルのエンコードを調べて、iso-2022-jp euc-jp shift_jisだったらutf-8に変換、またはutf-8だったらshift_jisに変換しています。

 実行すると、対象ファイルの選択画面が表示されます。選択すると、同じフォルダー上にエンコード名を付加したファイル名が作られます。元のファイルは残ります。

エンコード変換スクリプト

#! /usr/bin/env python3
"""
    chg_encode.py
"""
import tkinter.filedialog
import tkinter.messagebox
import codecs
import sys
import os

def convert(inpath, incode, outpath, outcode):
    try:
        inf = codecs.open(inpath, "r", incode)
        outf = codecs.open(outpath, "w", outcode)
    except Exception as err:
        sys.stderr.write("*** error ***\n")
        sys.stderr.write(str(err) + '\n')
        sys.exit( )
    for row in inf:
        outf.write(row)
    inf.close()
    outf.close()

def set_file_path():
    root = tkinter.Tk() 
    root.withdraw()
    tkinter.messagebox.showinfo('chg_encode.py','入力ファイルを選択してください!')
    inpath = tkinter.filedialog.askopenfilename(title='chg_encode.py')
    root.destroy()
    return(inpath)

''' エンコードを調べる。
   参考url:https://qiita.com/ty21ky/items/942e8f46441b092fce29
     オリジナルのブログは既に無くなっていた。'''
def getEncode(filepath):
    encs = "iso-2022-jp euc-jp shift_jis utf-8".split()
    for enc in encs:
        with open(filepath, encoding=enc) as fr:
            try:
                fr = fr.read()
            except UnicodeDecodeError:
                continue
        return enc  # 該当あり
    return('')  # 該当なし

def main():
    inpath = set_file_path()
    if inpath != '':
        files = (inpath,)
    else:
        sys.stderr.write('ファイル選択なし')
        sys.exit( )

    in_encode=getEncode(inpath)
    if in_encode == '':
        sys.stderr.write('encode判定出来ず')
    else:
        if in_encode == 'utf-8':
            out_encode = 'shift_jis'
        else:
            out_encode = 'utf-8'
    w_fname = os.path.splitext(inpath)
    outpath = w_fname[0] + '_' + out_encode + '.csv'

    convert(inpath, in_encode, outpath, out_encode)
    print('{:s} → {:s}'.format(inpath, outpath))
if __name__ == '__main__':
    main()
    input('Hit Enter-key')