やったこと:2020/10/26

画像比較ツール、比較処理と比較した結果の重複削除処理の実行ディレクトリを行ったり来たりするのが面倒なので、比較結果に実行ディレクトリの絶対パスを入れる修正。

あと実行結果を表示するhtmlも、リダイレクトするのを忘れてしまうので、標準出力を直接htmlファイルに向ける修正も。

ハッシュ値を格納するファイルではなく、CGIにパラメータとして渡して、それをダウンロードするPythonスクリプトに入れ込んでchdir()する。

問題はパスに日本語が入っていた場合。

適切な処理をしてCGIへ送らないと、CGIが500エラーになってしまう。

多分バイト列になってて、それを文字列の中に入れようとして例外になっているんじゃないかな?と思う。

ということで、sirius2wpでやったUnicodeのバイト列をUTF-8にする対処をして、CGIに渡して、そのままダウンロードするスクリプト入れて、PCでスクリプト実行時に日本語に戻す。

実行直前に戻すのが確実なので、CGIではそのままスクリプトに入れる。

ただし、スクリプト上は、Unicodeを表すUTF-8の文字列は変数ではなく、文字列として剥き出しで記述されるので、row表記(r’…’)か’\’をエスケープしてあげる必要がある。
これに気付かなくて、日本語パスが復元できないとハマってた。

print(rf"runpath = r'{runpath_u}'.encode().decode('unicode-escape')")

タイトルとURLをコピーしました