Python

Python dictionary → Java Map

Python dictionary を 標準出力してJavaでMap として読み込む。先日書いたものの勢いにまかせて、、、Python 標準出力→Java受け取り - Oboe吹きプログラマの黙示録Javaからプロセス起動で実行するPython と文字列の受け渡し - Oboe吹きプログラマの…

Python 標準出力→Java受け取り

先日書いた中の Python 標準出力→Java受け取りは、 Javaからプロセス起動で実行するPython と文字列の受け渡し - Oboe吹きプログラマの黙示録 リストを長い正規表現で解析する方法でこれでは、ちょっと効率が悪そうで 汚いコードである。 b' ' などとPyt…

Javaからプロセス起動で実行するPython と文字列の受け渡し

Javaプログラムとプロセス起動したPython 間で標準入出力を介して文字列を受け渡しをする。 Python は内部処理の文字コードが Unicode のせいか、 受け渡しの文字列は Unicode でなければ、双方で受け取れない。Pythonスクリプトの用意 標準入出力実行は、メ…

Python サブディクトリ下をインポートする書き方

今更の基本的なことだけど、、 サブディクトリ下に配置したスクリプトをインポートする方法 ./ +-- main.py | +-- util +--- sub.py +--- stdin.py このように、main.py が置いてあるディレクトリに util というディレクトリがあって その下に、メソッドし…

Python ログ出力 logging iniファイルを使用しない

Python でログ出力を行いログ管理することが本当に必要なのか甚だ疑問ではあるが、 開発でデバッグで使いたい場合もあるだろう。。 以前、ログ出力管理設定の ini ファイル形式を使用するサンプルを書いた。 → Python ロギング日付ローテーションのスニペッ…

Python 画像加工結果→Javaで受信→WebPage表示

画像URL → Python 処理に渡す。。。 → Python PILLOW で画像加工 → 結果をPython 実行の標準出力で出力 → この Python 処理を Java のプロセス起動で実行して 結果標準出力をストリームで受け取る。 → Webページで表示 という流れのシナリオで一切画像ファイ…

Python標準入力と Java

改行で標準入力→リストで取得の Python スクリプト、改行2回で標準入力が完了するスクリプト stdio.py # -*- coding: UTF-8 -*- import sys class Stdio: # 標準入力 @staticmethod def input(): inlist = [] try: while True: i = input('') if i=='':brea…

pdfkit ページヘッダを付ける

Python pdfkit で、ページ番号などページヘッダを付ける方法のメモ wkhtmltopdf のオプション説明 Help を読めばいいのですが、 → https://wkhtmltopdf.org/usage/wkhtmltopdf.txtオプションに、header-left で、ヘッダ左端に付与する文字列、 header-right …

Java→Python Pdfkit実行→PDF受け取る

Wicket で、Python Pdfkit実行してPDFダウンロードさせる方法を考えました。 このメリットは、 ・作成するPDFが、PdfkitがHTMLからPDFへの変換であることから WicketでブラウザにWeb Page 表示してPDF作成イメージを確認できること。 ・HTMLでPD…

pdfkit の from_url

pdfkit.from_file( HTMLファイルPATH , 出力PDFファイルPATH , options=options) pdfkit の from_file だけでなく憶えときたいもの。。pdfkit.from_url( url , 出力PDFファイルPATH , options=options)変数に出力 : False を付ける pdf = pdfkit.from_url( …

pdfkit Python で作成するPDFのサイズ

データーベースなどから読み込んだデータをPDF帳票出力する時に、表組出力~罫線等で囲んで 連続した出力をする場合、 Jasperreports on Java 詳細で複雑な表でも可能だが、XMLテンプレート作成がとても面倒で労力が必要 ReportLab on Python テンプレート作…

ヘッダ有りCSV をPython で読む時(メモ)

読出し → 行 row[1:] スライスを for ~ in で処理する。例) name, point A, 3 B, 2 C, 1import csv import codecs with codecs.open('sampledata.csv', 'r', 'utf-8') as fp: reader = csv.reader(fp) row = [row for row in reader] for row in row[1:]: p…

openpyxl で書く Excel セルの入力規則

最も簡単なサンプル~書き方を示すもの。 from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type="list", formula1='"A,B,C"') # 適用するセルの指定 dv.add(sheet.cell(1, 1)) # シートに入力規則を登録 sheet.add_data_v…

Python での Excel 読み書き

xlrd :読込みのみ。 xlwt:書込みのみ。しかも、*.xlsx は書けない。*.xls しか書けない。 1つのExcelに対して、読込み書込み両方の場合は、openpyxl を使うpip install openpyxl でインストールセル (cell) の行(row), 列(cols) の数え方は、1始まりであ…

Java と Python の AES暗合復号

実運用を考えて、書き直しました。 AES のモードは、CBC ,パディングは、PKCS5Padding Java側 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Arrays; import …

Python JSON整形

Python で JSON を読みやすく整形 json パッケージの dumps を使えばインデント指定で整形してくれる。 import json sample = '{"a":1,"set":{"type":"A","items":["apple","lemon","orange"]},"price":1200}' data = json.loads(sample) text = json.dumps(…

Python ModuleNotFoundError

Python datetime クラスのメソッド strptime や strftime を利用するのに、 from datetime import datetime と書いて、datetime.strptime ( 文字列, 書式 ) を書くのが長くて嫌です。 Python 分単位で時刻の範囲を展開 - Oboe吹きプログラマの黙示録 これを…

Python 分単位で時刻の範囲を展開

Python 初心者向けのコードだと思いますが、、 開始時刻分と終了時刻分を指定して1分ずつのリストを作る。 # -*- coding: UTF-8 -*- from datetime import datetime from datetime import timedelta def minutes_expand(from_datetime, to_datetime): resul…

MySQL Connector の with 文

Python では、PostgreSQL の接続、psycopg2 の connect は、 with 文を書くことができますが、 import psycopg2 with psycopg2.connect("host=localhost port=5432 dbname=urandb user=postgres password=aswe344f") as con: with con.cursor() as cur: # TO…

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

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

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

本記事よりも、2019-3-2 に書き改めた方を参照すべし。。 oboe2uran.hatenablog.com Java と Pyrhon 間の AES 256 暗合複合ができるようにするものです。 他言語と相互間の暗合複合を考慮の AES 暗合複合 Python のコード - Oboe吹きプログラマの黙示録 の続…

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

本記事よりも、2019-3-2 に書き改めた方を参照すべし。。 oboe2uran.hatenablog.com 先日書いた、 Java と Python 相互で AES 256 暗号/複合を実行する - Oboe吹きプログラマの黙示録 やはり、Python のコードを改める。 複合メソッド、Base64 受け取りとHe…

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

本記事よりも、2019-3-2 に書き改めた方を参照すべし。。 oboe2uran.hatenablog.com 試したのは、CBCモードとECBモードです。 Python暗号→Java複合は問題ないのですが、Base64 エンコードで相互受け渡すとして Java暗号→Python複合では、暗号化した文字列長…

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() 実行をカウント または、その予測計算をしなくてはならず、そういう処理…