Python

Putty で作成したRSA鍵で暗合複合の実行(Python)

本来なら Python だけで PuTTYgen で作成したRSA鍵ファイル (*.ppk) を読み込んで Python crypto が使用できるRSA公開鍵、RSA秘密鍵を取り出したかったのですが、 秘密鍵を抽出するもの puttykeys · PyPI しか見つからず、 公開鍵を抽出するものが欲しかった…

他言語と相互間の暗合複合を考慮の AES 暗合複合 Java のコード

Java と Pyrhon 間の AES 256 暗合複合ができるようにするものです。 他言語と相互間の暗合複合を考慮の AES 暗合複合 Python のコード - Oboe吹きプログラマの黙示録 の続きです。Java 側のコード import java.security.MessageDigest; import java.securit…

他言語と相互間の暗合複合を考慮の AES 暗合複合 Python のコード

先日書いた、 Java と Python 相互で AES 256 暗号/複合を実行する - Oboe吹きプログラマの黙示録 やはり、Python のコードを改める。 複合メソッド、Base64 受け取りとHex文字列受け取りが分かれるより引数で指定することにする。 名称も、どうせ 256 b…

Java と Python 相互で AES 256 暗号/複合を実行する

試したのは、CBCモードとECBモードです。 Python暗号→Java複合は問題ないのですが、Base64 エンコードで相互受け渡すとして Java暗号→Python複合では、暗号化した文字列長さが4の倍数になっても、 暗号文を Base64 b64decode 実行した時に、 binascii.Error…

Markdownファイルを Python で PDF にする

Python スクリプト実行するディレクトリ配下の md ファイルをPDFにします。 途中 HTML にしてHTMLからPDFにします。 (条件) HTML化した時のスタイルを任意のスタイルを 1つの スタイルシートファイルで指定するものとします。 以下、 スタイルシート…

1つしかないファイル探索方法 by Python

カレントディレクトリから再帰で、1つしかないと想定されるファイル名の探索を Python で。。 # -*- coding: utf-8 -*- import os import re # ディレクトリ全探索 def find_all(directory): for root, dirs, files in os.walk(directory): yield root for …

wkhtmltopdf で任意に改ページを挿入する

wkhtmltopdf でPDFに変換する https://wkhtmltopdf.org/ <div style="page-break-after:always;"></div> あるいは、罫線で <hr style="page-break-after:always;"/> 改ページしたい箇所に書き込んでおく。md(Markdownファイル)から PDF を作成するのに、pandoc や Prince とか使わずに、 一旦、HTMLに変換してPDFを作るつもりで、wkhtmlt</hr>…

Python における JSON の読込み、シングルクォート

Python で、import json を使った、json.loads の JSON読込みは、 キーが、シングルクォートで括られていてはダメだ。ダブルクォートでないとならない。 これは、非常に不便だ。 Java の Google GSON は、シングルクォートだろうが解釈してくれる。以下は、…

Java → Python プロセス起動の可能性

去年書いた yipuran-core/ScriptExecutor.java at master · yipuran/yipuran-core · GitHub このメソッド public static int runStream(Supplier<String>, Supplier<Collection<String>> , Consumer<InputStream>, BiConsumer<String, Throwable>) public static int runStream(Supplier<String>, Consumer<InputStream>, BiConsumer</inputstream></string></string,></inputstream></collection<string></string>

PythonでPDF作成→Javaで受け取り→Wicket AJAXダウンロード

WebアプリをJava で構築していて、Javaでダウンロードすファイルを作るなら一時ファイル (ディスクに一旦書き出すこと) を作らずにダウンロードするものを作るのは容易ですが、言語、実行環境が異なる処理に作らせて 一時ファイルを生成することなくダウン…

reportlab で PDF作成する時のページ番号 Page x of total の出力

Python reportlab でPDF作成で、 ”ページ番号 of 総ページ数" を出力する場合、 reportlab の platypus 機能を 使わないで実現するのは、総ページ数算出の為に、Canvas の showPage() 実行をカウント または、その予測計算をしなくてはならず、そういう処理…

jsTree→JSON抽出→Java GSONで解析→PythonでPDF作成→Wicket でPDFダウンロード

Webページに表現したツリー図を、以前、HTML2CANVAS で変換して jsPDF でPDF作成をしたのですが、 oboe2uran.hatenablog.com 大きいツリー図になると1ページで入らない場合破綻します。 html2canvas のキャプチャ実行を複数ページに 分割するように何回…

改善する→「JavaからProcess起動で Python 実行して PDF を作らせる。」

環境依存になってしまうコーディングはやはり良くないということで、 oboe2uran.hatenablog.comこれをもう少し修正して、Eclipse環境の起動でも問題が起きないようにする。 Process起動で 渡すデータを、ユニコード文字列で渡して Python側でデコードして使…

JavaからProcess起動で Python 実行して PDF を作らせる。

Java プロセス起動実行として、既に作成した yipuran-core/ScriptExecutor.java at master · yipuran/yipuran-core · GitHub を使います。 用意する Python スクリプト make_pdf.py と、テンプレートになるPDF と 出力先を指定します。 印字するデータとして…

Python 標準入力

Python で標準入力を取得する場合の書き方 inp = input('prompt>') この場合、標準出力では、'prompt>' が出力されていることに注意すべきで JavaからProcess実行して標準出力を捕捉する場合はこのプロンプトが入ってしまうので注意。空入力(改行2回)まで…

Python のバーコード生成ライブラリ

pyBarcode https://pythonhosted.org/pyBarcode/ https://bitbucket.org/whitie/python-barcode/overview と、 python-barcode https://github.com/WhyNotHugo/python-barcode と2つ見つかるが、、どうやら、同じもので、pyBarcode は、BitBucket にあって…

Python でQRコード生成

Python でQRコード生成は、qrcode ライブラリを使う。 https://github.com/lincolnloop/python-qrcode使い方も↑に書いてある。 インストール pip install qrcodeデフォルトのままの生成で良いなら、最小限のコードで import qrcode img = qrcode.make('test'…

Java - Python 間のRSA暗号→複合

今回は OpenSSL で作成する RSA鍵です。 RSA鍵作成 PEM形式の秘密鍵を生成する → private_key.pem openssl genrsa -out private_key.pem 1024パスワード付きの秘密鍵にするなら、 openssl genrsa -aes256 2048 > private_key.pemで、入力求められるのでパス…

アイコン無し=区別ない jsTree での保存

編集可能 jsTree の編集結果を Pyhon で、JSON 保存 - Oboe吹きプログラマの黙示録 の続き、アイコン無し、フォルダ等の区別がない、自由にツリーを組み立てるようにする jsTree 編集可能 jsTree の編集結果を Pyhon で、JSON 保存 - Oboe吹きプログラマの黙…

編集可能 jsTree の編集結果を Pyhon で、JSON 保存

「jsTree 描画→Treeの編集操作→ 編集結果を次回表示の為に保存」 (ここでいうTreeの編集操作は、ツリーアイテムを移動したり新規作成・削除・名称変更をツリー図上で実行することです) 通常は、ブラウザで表示した jsTree → JavaScript で JSON 変換、→ サ…

Python 3.x からの JSON ファイル読込みと書込み

Python の嫌なところは、2系と3系のバージョンの差が思わぬところにあるところだ。 2系は無視して、3系、codecs を使えば文字コード問題に悩まなくて済む読込み import json import codecs with codecs.open("test.json", 'r', 'utf-8') as f: data = js…

Python eelで jsTree の AJAX load を確かめる

jsTree の AJAX による URL指定の描画は、わざわざ Webサイトを立てないと 確認できません。 ↑のGIF画像になってしまいます。 サーバを立てなくても描画させるのに、 Python の eel パッケージを使って、手元のWindows PC上で、HTML と JS + Pythonスクリプ…

Python で、Excel を読み込むメモ xlrd 使用

Python でExcel を読み込む xlrd の解説はネットでたくさん見つかるのだが、やはり書いてみないと習得できない。Excel ファイルのサンプル、 sample.xlsx が以下の様になっているとする。 Name value 開始日 あいう 242 2018/11/06 ABCD 108 2018/11/07 XYZ …

ファイル内の文字列置換作業をPythonで行う。

Eclipse で Javaソースの package名リファクタリングなど、マウスで操作していると 最近のEclipseは重いせいか、鬱陶しい作業だ。しかもマウスの手元が狂ったら泣きたくなる。 そういう時こそ Python でスクリプトを走らせて実行させるべき。。以下URLの…

ディクショナリの get関数、取得できないとき

Python 初心者向け。。。 ディクショナリの get関数でキーが存在しない時は、第2引数指定すること。 例えば、mongodb など検索して取得したデータ=ディクショナリで 以下のように、if 文ネストを深く書くのは避けたい。。。 { "api": { "moneyrondaling":{ …

mongodb任意のコレクションの列の値をPythonでリストにする

mongodb に、"service" なるコレクションがあったとします。 ”type"という列の値のリスト抽出して、‘’空文字と合わせたリストを作ります。 ”type"列が存在しないレコードもあることを考慮します。 ・・・というお題。 import pymongo def open_database(dbna…

Python Flask template Jinja の文字列 escape

Webサイトの構築・提供を全てPython + Javascript だけでなんて、個人的見解ではとても賛成できないのだが、 なぜか世の中にはそういうものを作るところがあるもので困ったもの。 Flask template Jinja ・・・今時この JSP やJSFみたいなテンプレート書くな…

Python ロギング日付ローテーションのスニペット

Python を書くようになって日が浅い。 ロギングの詳細マニュアル https://docs.python.jp/3.6/library/logging.html https://docs.python.jp/3.6/library/logging.config.html https://docs.python.jp/3.6/library/logging.handlers.html日付ローテーション…

PyCharm で同じディレクトリ内の python import の Unresolved の警告エラーを防ぐ

PyCharm エディタで開いた時、同じディレクトリ内の python ソースの import 文が 警告が出てしまう。実行できないわけではない。 本来ならば、 xxx.py という同じフォルダ内のインポート文は、from + "." + import + "xxx" で from . import xxx と書くのが…

CSV書込み lineterminator の指定でハマる

import csv csv.register_dialect("MyDialect", quoting=csv.QUOTE_ALL, lineterminator='\n') と書いて、 with open("sample.csv", "w", encoding="utf-8") as f: w = csv.writer(f, "MyDialect") w.writerow(header_list) w.writerows(array_list) と書い…