Tue, September 12, 2006
Python/Jythonコードメモ...コマンドライン引数を得る,OSコマンドの実行,特定の拡張子を持つファイルの列挙など
jythonでたびたび使用するコードの備忘録。
コマンドライン引数を得る
import sys
print sys.argv[0]
Jython or PythonでUNIXのコマンド等を使いたい場合の記述方法
os.system("ここにコマンド")
具体例
#!/usr/local/bin/python
import os
os.system("gcj --classpath=swt.jar:swt-pi.jar --main=Test -o test Test.java lib-org-eclipse-swt.a")
※Jythonでもできます。
テキストファイルフィルター
拡張子 txt を持つファイルの一覧を得るときに使用。
import java.lang as lang
import java.io as io
class TextFileFilter(io.FileFilter):
def accept(self,file):
fname=file.getName()
return lang.String(fname).endsWith(".txt")
list=io.File("./").listFiles(TextFileFilter())
for file in list:
print file.name
java.lang.System.out で文字化けした場合の対処ラッパークラス
普通の環境では java.lang.System.out.println() で文字化けすることはないが、 英語環境のサーバなどで使用する場合にコンソールに出力させたメッセージが 文字化けしてしまって不便な場合がある。
そんなときに使うコード。
import java.lang as lang
import java.io as io
class MySystemOut:
def __init__(self,encoding):
self.pw=io.PrintWriter( io.OutputStreamWriter(lang.System.out,encoding) )
def print(self,str):
self.pw.print(str)
self.pw.flush()
def println(self,str):
self.pw.println(str)
self.pw.flush()
def close(self):
self.pw.close()
ENC="EUC-JP"
MySystemOut(ENC).println("nihongo-message")