Pythonを使用したファイルの読み書き
紹介
適切なサイズのほとんどのプログラムは、ファイルから読み書きできる必要があります。少なくとも、ログを生成できる必要があります。
PythonはLinuxシステム管理やスクリプティングにもしっかり統合されています。再度、システムを管理するためには読み書きが重要です。
ファイルを開く
Pythonは開いたファイルからオブジェクトを作成します。その後、そのオブジェクトを操作できます。操作が完了したら、オブジェクトを使用してファイルに変更を保存します。
新しいテキストファイルを作成し、テキストエディタから意味のない内容で埋めてください。複数行のテキストを含めるようにしてください。
さあ、作業するためのPythonファイルを作成します。
そのファイルでは、Pythonのopen関数を使用してファイルを開き、それに基づいてオブジェクトを作成できます。
file = open('test.txt', 'r+')
fileは現在、ファイルに関する情報を保持するオブジェクトです。読み取りおよび書き込みの両方が可能です。
ご覧のとおり、open()関数は2つの引数を取ります。最初の引数は開く必要があるファイルのパスで、2つ目の引数はそのファイルが開かれるモードです。いくつかのモードがありますが、頻繁に使用するのはごくわずかです。
| モード | ||
|---|---|---|
| 読む | r | ファイルからのみ読む |
| 書く > w | ファイルに書き込み、消去する | |
| 追加する | A | ファイルの最後に新しい行を追加する |
| 読む & 書く | r+ | ファイルを上書きせずに読み書きする |
| 書き込み & 読み取り(上書き) | ワープラス | ファイルを書き込み、内容を上書きする |
ファイルを読む
ファイルオブジェクトをテストドライブに出してみてください。その中にread()メソッドを呼び出す行を追加してください。
file.read()read メソッドは、ファイルの全内容をコマンドラインに出力します。これは、cat を使用するのと似ています。ファイルを読み込むと、各行が文字列として表示され、その後に改行文字が追加されます。最後の行は空の文字列''として表示されます。
個々の行を取得するために使用できる別の方法があります。それはreadline()メソッドです。readline()はファイルの先頭から始まり、呼び出されるたびに各行を個別に読み取ります。
read() 行をファイルから削除し、代わりに readline() を複数回呼び出してみてください。
for x in range(1, 11):
file.readline()
十行未満の場合、恐らく多くの空の文字列に気づいたでしょう。それは readline() がファイルの行数を超えるときに出力するものです。
ファイルを書く
ファイルに書き込むのはさらに簡単です。ファイルに書き込むために必要なのは、write()メソッドを呼び出し、ファイルの最後に書き込みたい文字列を渡すことだけです。write()は常に新しい行をファイルの最後に書き込みます。
file.write("I'm a new line!")ファイルには必要なだけ何度でも書き込むことができます。write()メソッドが呼び出されるたびに、新しい行が作成されるため、ログ記録に最適です。
探す
現時点では、ファイル内の流れを本当にコントロールすることはできません。seek()メソッドを使うことで、その一部を取り戻すことができます。
それは二つの数値を引数として取り、ファイル内を両方向に移動することを可能にします。最初の数値は、ファイル内で不可視ポインタを参照させたい位置です。3を渡すと、第三文字の後に位置します。二番目の数値は、そこからスタートしたい位置です。二番目に1の値を入れると、メソッドはポインタの現在の位置から探し始めます。2はファイルの終わりを意味します。
一緒にseek()とreadline()を使ってみてください。
file.seek(15, 0)
file.readline()
Pythonは、そのポイントが落ちる行の終わりから15文字を印刷します。
ファイルを閉じる
ファイルの作業が完了したら、変更を適用し、メモリを解放するためにファイルを閉じる必要があります。オブジェクトのclose()メソッドを呼び出すことでファイルを閉じることができます。
file.close()締めくくりの考え
今、Pythonを使ってファイルから情報を収集することができます。また、出力をファイルに書き込むこともできます。これにより、テキストファイルから情報を使用し保存する多くの機会が広がります。
運動
- 10行以上のテキストファイルを作成してください。
- Pythonでは、ファイルを上書きせずに読み書き可能として開きます。
- Pythonでファイルを読み込む。
- ファイル内の見えないポインタを最初にリセットしてください。
- ファイルの最初の2行だけを読み取ります。
- 再び最初からやり直して。
- 七行目と九行目だけを読んでください。
- ファイルに新しい行を2つ書き込みます。
- ファイルを閉じてください。