Pythonの学習 6章 ファイルの読み書き

Pythonスタートブック 6章 「ファイルの読み書き」をまとめます。

ファイルの読み書き

  • まず、ファイルを入れるためのオブジェクトtest_fileへファイルを入れる
  • ここでは、ソースファイルと同じディレクトリに「test.txt」を作成した

    ファイルを呼び出す

    書き込みモード

  • 関数openを呼び出すと、file型のデータが戻り値として返ってくる
  • 一つ目の引数は、開きたいテキストファイル名。二つ目の引数は、モード選択。モード選択'w'は書き込みモードで開くということ
test_file=open('test.txt','w')
  • 開いたファイルへ、helloと書き込む
test_file.write('hello')
  • 書き込みを確実に完了させる関数を実行
test_file.flush()
  • 開いたファイルを閉じる関数を実行
test_file.close()

読み込みモード

  • ファイルを読み込むread modeで実行
test_file=open('test.txt','r')
  • 開いたファイルを一行づつ読み込む。読み込んだ行はread_strへ入れる
read_str=test_file.readline()
  • 開いたファイルを閉じる関数を実行
test_file.close()
  • 読み込んだ一行を確認のために表示してみる。
print(read_str)

複数行への書き込み、読み込み

複数行への書き込み①(\nで改行する)

今回は「test2.txt」をソースコードと同じディレクトリに作成しておく

#書き込みモードで開く
test_file=open('test2.txt','w')
#改行して、2行書き込む
test_file.write('hello\nPython')
  • 書き込みを確実に完了させる関数を実行
test_file.flush()
  • 開いたファイルを閉じる関数を実行
test_file.close()

複数行の読み込み

test_file=open('test2.txt','r')
  • 複数行を読み込んでくれるreadlinesを使う
  • 取り出された行はリスト型。例えばA[0]は'hello'を指定するものとなる
A=test_file.readlines()
  • 開いたファイルを閉じる関数を実行
test_file.close()
  • 実行するとわかるが、このままだと\nが表示されてしまう
print(A)

*\nを取り除くには、stripメソッドを使用する。 stripメソッドは文字列の前後にある空白や制御文字列(改行とか)を取り除いて、文字列だけにしてくれる

print(A[0].strip())

複数行への書き込み②writelines

  • 書き込みモードで開く
test_file=open('test3.txt','w')
  • 書き込むデータを用意
data=['1,2,3\n','4,5,6\n','7,8,9\n']
  • writelinesでいっきに書き込み
test_file.writelines(data)
  • 書き込みを確実に完了させる関数を実行
test_file.flush()
  • 開いたファイルを閉じる関数を実行
test_file.close()

forを使った複数行の取り出し

  • 読み込みモードで開く
test_file=open('test3.txt','r')
  • 複数行の取り出し
for B in test_file:
        print(B.strip())
#開いたファイルを閉じる関数を実行
test_file.close()

forを使った複数行に書き加えて取り出し

#読み込みモードで開く
test_file=open('test3.txt','r')
#forを使った複数行に書き加え
for B in test_file:
        #temp_listへ改行取り除くstrip()、指定した文字列(今回は',')で分割するsplitで処理したtest_fileリストリストを入れる
        temp_list=B.strip().split(',')
        #先ほどのtemp_listへタブによる空欄を差し込む
        #joinメソッドは指定したリストのすべての要素の間に文字列を挿入する
        #'\t'はタブを表す文字列
        output_line='\t'.join(temp_list)
        print(output_line)
#開いたファイルを閉じる関数を実行
test_file.close()