BBS投稿のためのソース変換
escape_code.py(1310)
#!/usr/bin/env python import sys from tkFileDialog import * if len(sys.argv) >= 2: filenames = sys.argv[1:] else: filenames = askopenfilenames(filetypes =[('python files', '*.py'), ('text files', '*.txt'), ('all files', '*.*')]) for filename in filenames: src = file(filename) dst = file(filename+".txt", "w") for line in src: line = line.replace("&", "&") line = line.replace("<", "<") line = line.replace(">", ">") dst.write(line.replace(" ", " ").strip()+"\n") src.close() dst.close()
スペースが潰れて見づらいからこれを使うがよい
説明
2chにPythonコードをそのまま投稿すると、インデント(連続した半角スペース)が潰れてぐちゃぐちゃになってしまいます。インデントでコードブロックを表現するPythonには致命的な問題です。この問題は、半角スペース " " を " " に置き換えることで解決できます。
タブでインデントする人はコード中に「line = line.replace("\t", " "*4)」を追加しましょう。
escape_code.py は、Pythonファイル hogehoge.py を以下のルールで置き換え、 hogehoge.py.txt という名前で保存します。
"&" => "&" "<" => "<" ">" => ">" ' ' => ' '
escape_code.py は、標準モジュール tkinter(tkFileDialog) を使用しています。実行すると、ファイル選択ダイアログが開きます。Python2.6以降ではこの部分は動作しない。tkFileDialogの返す文字列を適切に処理する必要あり。