Web上にソースコードを公開するときに何かと不便なのがタブの扱いで、google sitesの場合タブが無効になっちゃったり大丈夫だったりよくわからない。とりあえずタブをスペース2つに変換ってことでvimでいちいち変換していたんだけどめんどくさい。
なににせよPythonでインデントというのはただの見た目の問題だけではない動作するかしないかまでの問題を孕むのでまともに表示してもらえないと困る。かんたんにどうにかしたい。
gawkとかperlとかつかえばかんたんに出来たかもしれないけどpythonでもそれなりに興味深い内容を含むので作ってみた。
sourceView.py
#!/usr/bin/python3
import argparse
p = argparse.ArgumentParser()
p.add_argument("inputFile")
args = p.parse_args()
fn = args.inputFile
f = open( fn, "r" )
rl = f.readline()
while rl:
rl = rl.replace("\n","")
rl = rl.replace("\t"," ")
print(rl)
rl = f.readline()
f.close()
使い方は chmod +x sourceView.pyと実行権限つけて。
./sourceView hogehoge.py
というように使う。そのままコンソールに表示されるのでファイルに保存したいとかならパイプで処理。
これのどこに興味深い内容を含むのかというと argparse というモジュール。
Pythonでは標準モジュールらしいんだけどあまり利用されてるのを見たことがなかったので。
sysモジュールよりもいろいろ便利だったのでポストしてみた。