今回は、計算内容はPythonで微小振幅波の波長を繰り返し収束計算してみた!のプログラムと同じですが、入出力にテキストファイルを使用しました。テキストファイルの入出力方法にも種々あるようですが、まずは1つのパターンを覚えておいて、必要に応じて応用していけば良いかなと思います。
インプットファイルの作成
インプットファイルはメモ帳で作成しました。文字コードUTF-8で書いてプログラムと同じフォルダに保存しておきます。
”数値の内容,入力データ”というようにデータを,で区切る形式で記入しています。
プログラムの書き換え
Pythonで微小振幅波の波長を繰り返し収束計算してみた!の プログラムの入出力部分に、テキストファイルの読み書きを書き加えました。
ファイルの読み込み手順はつぎのようです。
- ファイルを読み込みモードで開き、ファイル変数”f1”に取得
- ファイル変数”f1”の中身を1行ずつ変数”line”に読み込む
- 数値の内容に応じて計算データとして代入
- ファイルを閉じる
書き込み手順は
- ファイルを書き込みモードで開き、ファイル変数“f2”とおく
- ファイル変数“f2”にデータを書き出す
- ファイルを閉じる
ファイルを開く
- 読み込み時:open(ファイル名,mode=’r’,encoding=文字コード)
- 書き込み時:open(ファイル名,mode=’w’,encoding=文字コード)
1行ずつ文字列として読み込む
for 文字列変数 in ファイル変数:
この例では文字列変数”line”、ファイル変数”f1”と”f2“
記号で分割してリストデータに格納
リストデータ名 = 文字列変数.split(‘分割記号‘)
この例では2個の文字列からなるリストデータ”datas”、分割記号”,”としています。
なお、テキストデータは文字列として読み込むので、計算上の変数に入れる場合は”float”などの数値への変換が必要です。
ファイルへの書き込み
ファイルオブジェクト=write(printと同様な書式+\n)
\nは改行を表します。
ファイルを閉じる
ファイル変数.close()
プログラムの実行
同じディレクトリーにinput.txtとプログラム.pyを格納しておきます。プログラムを実行すると、同じディレクトリーにoutput.txtが出力されます。
PowerShellでプログラムを実行した際の画面です。
output.txt内につぎのような内容が書き込まれています。
テキストファイル読み書きのまとめ
今回はPythonで微小振幅波の波長を繰り返し収束計算してみた!のプログラムの入出力をテキストデータで実施してみました。
数行のコマンドを用いるだけで簡単に実施できました。ただし、データの読み書きは文字列で行われる点に注意が必要です。
次回はもう少し大きなデータを読み込んで図化するまでを勉強したいと思っています。
コメント