Index > Python/Jythonコードメモ...コマンドライン引数を得る,OSコマンドの実行,特定の拡張子を持つファイルの列挙など
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 を持つファイルの一覧を得るときに使用。

textFileFilter.py

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() で文字化けすることはないが、 英語環境のサーバなどで使用する場合にコンソールに出力させたメッセージが 文字化けしてしまって不便な場合がある。

そんなときに使うコード。

mySystemOut.py

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")
 Twitter
follow me on Twitter
 Categories