python俺的復習『ファイルの入出力』by Google Colaboratory

pythonLOGO

ファイルパスのとり方はこちらを参照ください。

※本文中のコードのファイルパスは、実行環境により異なるので注意

ファイルを開く

# 変数 = open('Sample.txt')

# 開きたいファイルと'r'を,(コンマ)で繋げて記述することで読み込みモード
# 変数 = open('Sample.txt','r')

# 開きたいファイルと'w'を,(コンマ)で繋げて記述することで書き込みモード
# 変数 = open('Sample.txt','w')

# open('data.csv')のようにモードを指定しないときは自動的に読み込みモードとなる。

# 'r+'、'w+'、'a+'のように読み込みと書き込みが同時に行えるモードもあります。

# 書き込みモードでファイルを開くとき、かつ存在しないファイルを指定した場合は、
# そのファイルを作成したのち、開いてくれます。
# しかし、読み込みモードで存在しないファイルを指定すると、エラーが起きてしまうことに注意して下さい。

ファイルを閉じる

# 変数 = open('開きたいファイル','r')
# 変数.close()
# print(変数.closed)

# 変数.close()と記述することでファイルを閉じることができる。

ファイルの読み込み

# 変数1 = openした変数.read()
# print(変数1)

# read()という関数はファイルの内容を文字列として変数1に代入します。
# 文字列か否かは次のように入力することで確認することができます。
# print(type(変数1))

# 変数1のデータ型を確認し、<class 'str'>となっていれば文字列として読み込めています。

リストによるファイルの読み込む場合

# 変数1 = openした変数.readlines()

ファイルの1行だけ読み込む場合

# 変数1 = openした変数.readline()

ファイル読み込み用の関数を使用しないファイル読み込み

# for 変数 in openした変数:
#     # 処理

# 読み込むファイルの容量が大きすぎるときは、
# read()やreadlines()で一気に読み込むのではなく、
# readline()や今回の手法を使用して1行ずつ読み込むようにする。

# 例

# read()を使用したファイル読み込み
of = open('data.csv', 'r')
print(of.read())
of.close()
print("=====区切り=====")

# readlines()を使用したファイル読み込み
of = open('data.csv', 'r')
for li in of.readlines():
    print(li)
of.close()
print("=====区切り=====")

# readline()を使用したファイル読み込み
of = open('data.csv', 'r')
for _ in range(5):
    print(of.readline())
of.close()
print("=====区切り=====")

# 読み込み用の関数を使用しないファイル読み込み
open_file = open('data.csv','r')
for line in open_file:
    print(line)
open_file.close()

ファイルへの文字列の書き込み

# print関数は画面に向けた出力を行い、
# write関数はファイルに向けた出力を行うという違いがる。

# 変数 = open('Sample.txt', 'w')
# 変数.write('Hello')

# 変数1 = open('Sample.txt', 'w')
# 変数2 = 'Hello'
# 変数1.write(変数2)

# ファイルを書き込みモードで開く
open_file = open('write.csv','w')

# 書き込みたいデータ
data = 'id,name,score'

# ファイルにデータを書き込む
open_file.write(data)

# 書き込み用ファイルを閉じる
open_file.close()

# ファイルに書き込んだ内容を表示する
open_read_file = open('write.csv','r')
read_file = open_read_file.read()
print(read_file)

# 読み込み用ファイルを閉じる
open_read_file.close()

# 同じファイルを2回開くときも2回閉じる必要がある。
# 変数 = open_file.write(data)の様に戻り値を記述することで、
# 書き込んだ文字列の文字数を取得することができます。

# 数値データを書き込みたいときは書き込む前に文字列にキャストする必要がある。

ファイルへのリストの書き込み

# 変数 = open('Sample.txt', 'w')
# 変数.writelines(['apple', 'orange', 'peach'])

# write関数と同じようにリストを代入した変数を
# 関数writelines()の引数にしても同じ結果を得ることができます。

# 変数1 = open('Sample.txt', 'w')
# 変数2 = ['apple', 'orange', 'peach']
# 変数1.writelines(変数2)

# 例

# ファイルを書き込みモードで開く
open_file = open('write.csv','w')

# 書き込みたいデータ
list_data = ['id', ',', 'name', ',', 'score']

# ファイルにデータを書き込む
open_file.writelines(list_data)

# 書き込み用ファイルを閉じる
open_file.close()

# ファイルに書き込んだ内容を表示する
open_read_file = open('write.csv','r')
read_file = open_read_file.read()
print(read_file)

# 読み込み用ファイルを閉じる
open_read_file.close()

# 同じファイルを2回開くときも2回閉じる必要がある。
# 数値のリストを書き込みたいときは書き込む前に中身の数値を文字列にキャストする必要がある。

with構文(構文の外に出ると自動でファイルを閉じる)

# 変数1 = open('開きたいファイル','r')
# 変数2 = 変数1.read()
# 変数1.close()

# with open('開きたいファイル', 'r') as 変数1:
#     変数2 = 変数1.read()

# withの外に出ると自動的にファイルが閉じられるため、close関数を忘れる心配がない。
# withの中にwithを書くことで複数のファイルを開くことができる。



 

あ、宜しければ・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です