カテゴリー

アーカイブ






system関数


テキスト抽出するコードをpythonで色々いじったのだが
結局sedとgrepを使うシェルスクリプトを書いた方が早かった。
pythonでテキストを扱うライブラリとかあるのかな?

pythonのos.systemでgrepを実行した場合
windowsだと常に0が返るので、結果を受け取れないのだ。
結果が欲しい場合、リダイレクションさせて一回ファイルに落とさないといけない

os.system("grep '***' './script.txt' > temp.txtx")

mynzさんに指摘してもらって、パイプを使ったらうまくいった

os.popen("grep '***' './script.txt'").read().split("\n")

MELのsystem関数だとちゃんと結果が返ってきて
stringに格納できる

string $result = system("grep '***' './script.txt'")


2 Responses to “system関数”

  1. mynz Says:

    外部コマンドを使ってそのプロセス戻り値ではなく、標準出力を受け取りたい場合はパイプを使うのがいいのでは。
    Pythonでは、以下の感じかな?

    result = os.popen(”ls”).read()

    grepとsedでコトが足りるのなら、Pythonの組み込み系と正規表現で何とかなるかもね。

  2. あきを Says:

    おお出来ました!
    ありがとうございます!
    これでいちいちファイルにリダクションしなくてよくなりました!

Leave a Reply