SSブログ

wythonにいくつかの関数を実装 [wython]

 前回、まだwythonに不足している機能をいくつかピックアップしたが、今日は、その大部分を実装した。まずはサンプルを挙げよう。

コマンドラインの引数の1番目を文字列型変数file_nameに代入する。

ファイル名file_nameを読み込み用にオープンし、input_fileに代入する。
コマンドライン引数の2番目をfile_nameに代入する。
ファイル名file_nameを書き込み用にオープンし、output_fileに代入する。

ファイルinput_fileから一行ずつ文字列変数lineに読み込みながら、
  lineの中で「検索」を検索し、その結果をpos1に代入する。
  lineの中で「置換」を検索し、その結果をpos2に代入する。
  もし、pos1が0以上、あるいは、pos2が0以上ならば、
    lineを改行せずに表示する。
  lineの中の「、」を「,」に置換して、その結果をlineに代入する。
  lineの中の「。」を「.」に置換して、その結果をlineに代入する。
  ファイルoutput_fileにlineを書き込む。

ファイルinput_fileをクローズする。
ファイルoutput_fileをクローズする。

これをwythonで変換すると、

#!/usr/bin/env python
# -*- coding:euc-jp -*-

import sys
file_name = sys.argv[1]

input_file = open(file_name)
file_name = sys.argv[2]
output_file = open(file_name, "w")

for line in input_file:
    pos1 = line.find("検索" )
    pos2 = line.find("置換" )
    if pos1 >= 0 or pos2 >= 0:
        print line,
    line = line.replace("、" , "," )
    line = line.replace("。" , "." )
    output_file.write(line)

input_file.close()
output_file.close()

となる。画面に書き出される結果は、

  lineの中で「検索」を検索し、その結果をpos1に代入する。
  lineの中で「置換」を検索し、その結果をpos2に代入する。
  lineの中の「、」を「,」に置換して、その結果をlineに代入する。
  lineの中の「。」を「.」に置換して、その結果をlineに代入する。

となり、コマンドラインの第二引数に指定したファイルに、「、」を「,」、「。」を「.」に置換したテキストが書き出される。

言語仕様は前回のままだが、念のため、ここで今日実装できた分をまとめておこう。

  1. コマンドラインの引数はsys.argvに置換される。そのリストの何番目の引数かは、既に実装してあるリストの項目を指定する機能が使われる。
  2. 「〜を読み込み用にオープンし、〜に代入する。」および、「〜を書き込み用にオープンし、〜に代入する。」で、ファイル名からファイルをオープンし、そのファイルオブジェクトを変数に代入する。
  3. 「ファイル〜をクローズする。」で、ファイルオブジェクトを閉じる。
  4. for文を使ったファイルからの読み込みは、通常のfor文の処理で十分である。
  5. 「〜の中で〜を〜に置換して、その結果を〜に代入する。」で、最初の文字列の中で置換する。
  6. 「〜の中で〜を検索し、その結果を〜に代入する。」では、同様に最初の文字列の中で検索し、見つかったときの位置を変数に代入する。
  7. 「ファイル〜に〜を書き込む。」で、ファイルに文字列を書き出す。
まだ多少実装していない機能はあるが、これで随分といろいろいなことができるようになった。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。