「Programing」カテゴリーアーカイブ

車輪の再発明

車輪の再発明をしかけていた…

もの凄くアナログなことが現場で行われていて、
それをデジタル(インターネット)の力で改善したいと思っていた。

嗜む程度にプログラミングのスキルはあるので、
Python を使うか、それともGoogle のスプレッドシートを使用するつもりだから GAS (Google App Script) を使うか迷っていた。

開発方針

  • データベースの作成
  • パターンを3つに分ける
  • 条件節を使用して、各条件に合ったデータを取得・表示
  • 表示したデータを各自で見やすくする

Vlookup の存在に気づく

GAS の本も購入して読み進めていたが、
ふと ”Vlookup を使えば良いんじゃね?” と思い立つ。

作りかけていたデータの一覧を、 Vlookup 用に変更し、
再度作業を進めていたらあっという間に完成…。
(今までの努力は…)

あとは見易く整えた上で、
拡散していこうと思います。

SHARPのマスク申込用のプログラミングを書いてみた

申込み時の問題点

・サイトに繋がりにくい
・名前、メールアドレス、電話番号の入力が手間

ということで、Python でプログラミングを書いてみました。

実装

Selenium, ChromeDriver, Time を使用してサクッと書き上げる。
GitHub のリンクはこちら

結果

・記入事項の入力はできたものの、reCaptchaに阻まれる…
・手動でreCAPTCHAを入力しても、Chrome を自動で動かしているからか、延々と画像が表示される

手入力でアクセス&入力しても 502 / 503 エラーで応募できないので、打つ手なし。

GitHub に Push できない(再)

前回の Push から時間が空いてしまうと、いまだに一発で Push できなくなります。

そこで、ブログにまとめることに。

Push の方法

  1. git init
  2. git add README.md
  3. git commit -m “first commit”
  4. git remote add origin https://github.com/Shaw622/hogehoge.git
  5. git push -u origin master

基本的には上記のコマンドをコピペすれば良いのですが、
git add README.md の README.md 部分は別に要らないので、
git add . にすれば良いことをよく忘れます。。。

ここをよく間違えるので、エラーを出してしまいますが、
ブログでまとめたからにはもう大丈夫かな〜。

そして Quita にもこの件についてはまとめておいた方が後々役に立ちそうだ。

GitHubの2段階認証を設定したらpushできなくなった

セキュリティ上の問題で GitHub に2段階認証を設定したところ、通常使用していた ID, Password では Push できなくなりました。

TechAcademy のメンターに相談したところ、
こちらのページ(Qiita)を案内される。

ページの通りに Token を発行したまでは良かったものの、
面倒だなぁーと思ったので、2段階認証を使用しない方針に変更

プログラミングの学習

世の中には有償・無償で様々なサービスが展開されています。

現在、Tech Academy のウケ放題コースを受講中ですが、
無料のプログラミング講座でも良かったかもなぁ。。。

しかしながら嘆いても仕方がないので、
引き続き学んでいきたいと思います。

無料で始めるAIプログラミングオンライン講座11選

Grow with Googleも良さそうですね。

PDF ファイルの連結 with Python3

背景

ScanSnap で書籍を自炊していたが、
補充ミスでPDF ファイルが分割されてしまうことがあった。

それらの分割されたファイルを1つにまとめたい。

コード

import PyPDF2
pdf1_file = open(‘夜間飛行.pdf’, ‘rb’)
pdf2_file = open(‘夜間飛行2.pdf’, ‘rb’)
pdfa_reader = PyPDF2.PdfFileReader(pdf1_file)
pdfb_reader = PyPDF2.PdfFileReader(pdf2_file)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(pdfa_reader.numPages):
page_obj = pdfa_reader.getPage(page_num)
pdf_writer.addPage(page_obj)

for page_num in range(pdfb_reader.numPages):
page_obj = pdfb_reader.getPage(page_num)
pdf_writer.addPage(page_obj)

pdf_output_file = open(‘夜間飛行3.pdf’, ‘wb’)
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
pdf1_file.close()
pdf2_file.close()

出力結果

無事に2つに別れてしまっていたファイルを1つにまとめることができました。

WD を眺めながら作業を行なっていたら、
 pdf_writer.write(pdf_output_file)
を入力時にファイルが作成されたものの、
この段階では空のファイルであり、
 pdf_output_file.close()
を入力した際にデータが書き込まれたのが面白かった。

pdfa_readerpdfb_reader については、本来は
pdf1_readerpdf2_reader になるはずだったが Typo。

見やすくすると以下の様になるかと思います。

import PyPDF2

file1 = open(‘hoge.pdf’, ‘rb’)
file2 = open(‘hoge2.pdf’, ‘rb’)
pdf1_reader = PyPDF2.PdfFileReader(file1)
pdf2_reader = PyPDF2.PdfFileReader(file2)
pdf_writer = PyPDF2.PdfFileWriter()

for page_num in range(pdf1_reader.numPages):
page_obj = pdf1_reader.getPage(page_num)
pdf_writer.addPage(page_obj)

for page_num in range(pdf2_reader.numPages):
page_obj = pdf2_reader.getPage(page_num)
pdf_writer.addPage(page_obj)

pdf_output_file = open(‘hoge3.pdf’, ‘wb’)
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
file1.close()
file2.close()

その他

ScanSnap で PDF ではなく JPEG として保蔵されているものがありました。
それのファイル変換は、オンラインサービスを使ったほうが良さそう。

https://jpg2pdf.com/ja/

1ヶ月ぶりに Python をいじる

プログラミング〜 (^^)/

4月以来、コードをいじっていないことが発覚。
本を見返しても、なんのこっちゃ?状態でした。

これはマズイ…と思ったので
再び独学を再開。

Selenium のドライバーインストール前後で止まっていたので、
その辺りから再開。

中途半端に Firefox のドライバー(Geckodriver)は /usr/local/binにコピーされていました。
なので、Chrome と Safari の設定だけして今日のところは終わり。

参考サイト

【selenium】Firefox/Chrome/SafariのWebDriverインストール – Python 編 –

https://qiita.com/hujuu/items/ef89c34fca955cc571ec

久しぶりすぎて Terminal から .py を起動するときに
chmod +x filename.py をやるのを忘れていました。。。汗