見出し画像

活動報告19(2022年5月)

プロジェクト薬箱「Python編(中級6)」
 今月は趣向を変えて、まずは新たに取得できた特許権について宣伝も兼ねて簡単に説明してみる(タイトル画参照)。これは2018年に出願したもので、自身2番目に考案した医療用器具となる。本来は、動脈からの出血に対する止血装置を想定してスタートしたが、発明は広い視点からよりデカく考える、という方針にしたがって、止血行為の本質である「圧迫」に注目して設計した。体の任意の部位に、正確な圧力で、精緻に制御できるという特徴を有しており、止血以外にも、トリガーポイント(有痛性の筋硬結部)への圧迫刺激による鎮痛(指圧療法みたいなもの)にも応用できる器具である。初期の自信作の一つでもあったが、予想通り「お約束」で初回審査において拒絶理由を通知された。しかし、自信をもって補正書を提出し、無事に特許査定を得ることができた。とりあえず特許料を納付してみたが、いつかこの発明が日の目をみる時が来るのだろうか。
 
さて、今月も11冊目:「退屈なことはPythonにやらせよう」の続きだが、ようやく読了できた。今、学習した内容を振り返りながらこれを記述しているが、ネットを調べてみてもこの本について網羅的に各章を掘り下げた感想は見当たらないので、今までの密度を維持しつつ感想を続けていきたい。
 12章では、Excelワークシートの解析処理を学んだが、セルの中身を読み取るだけでなくシートの成型もすべてPythonで操作可能になるので、特に膨大な量のワークシートを定型処理するときに役立つ。確かにエクセルには関数もあるしマクロもあるが、それらの文法を学ぶことなく、Pythonの知識だけで使いこなせるようになるので、効率的でもある。また、作成したプログラムをモジュール化することで、インポートするだけでエクセル上の処理ができる。この場合、xlsファイルを開く必要もない。ただし、本書でのコード記述が古い仕様のままであるので、非推奨メソッドとの警告が頻繁に出る。適宜コードの修正が必要だが、このあたりはネットで容易に調べることができる。
 
13章では、バイナリファイルであるPDFとWord文書が対象となる。PDFにおいては、基本のテキスト抽出から始まりPDFの操作まで学ぶ。特に便利なのが、PDFページのコピーや順番の入れ替え、重ね合わせ、結合などの操作が可能になること。このあたりはAcrobatを導入していれば当然に可能だが、普通は購入しないし(ですよね?)、フリーソフトでは制限があったりするので、とてもお得。
 一方、Word文書であるdocxファイルは3種類の構造体から形成されていて少し複雑となっている。その構造体は文書全体~段落等の文書のかたまりに応じた3種類のオブジェクトを反映しており、その中で文字の属性等のスタイルが定義されている。個別の書類を作成する場合には直接Wordで開く方が分かりやすいが、定型フォーマットの文書を、宛名だけを変えて大量に作成するような場合には、Pythonは効力を発揮する。また、演習プロジェクトで、総当たり方式のPDFパスワード解除のプログラムを作成した。ログインとは違ってPDFのパスワード入力には回数制限がないので、辞書ファイルの工夫次第で汎用的なPDFパスワード解除プログラムに化ける可能性がある。
 
14章では、CSVファイルとJSONデータが対象となるが、これらはプレーンテキストファイルである。CSVファイルの処理方法はエクセルの場合と大差はなかったが、JSONデータの処理は極めて重要だ。というのも、JSON形式のデータでWebページのAPIとアクセスするので、ページ内容の入手が極めて容易となるからだ。前回、WebページをダウンロードしてBeautifulSoupでHTMLを解析する手法を学んだが、そのページにAPIを用意してあれば、回りくどいことをせずに汎用的な処理が可能となる。例えば、演習プロジェクトではOpenWeatherMapからJSON形式で天気予報データをダウンロードして表示するプログラムを作成した。事前に会員登録してAPIキーを取得しておく手間が必要だが、このプログラムによりブラウザでページを開く手間をかけずに必要な天気予報を入手できるようになり、その後の展望が格段に広がる。このあたりは本書の後半を読めばアイデアが湧くようになってくる。
 という訳で、一投稿あたり1000字程度という自分が設定した制限を大幅に上回ってしまったので、続きはまた次回としたい。

この記事が気に入ったらサポートをしてみませんか?