2020-02-14

open - python

ファイルの読み込み、書き込みをする。
インポート不要。

・テキストファイルの読み込み

テキストファイルを用意。


open() にファイルのパスを指定してファイルを開く。
開いた後は .read() で読み込む。
読み込んだ後は .close() でファイルを閉じる。
strPath = r'file\001.txt'

f = open( strPath )

strValue = f.read()

f.close()

print( strValue )

#出力
# 1st line
# 2nd line
# 3rd line
# 4th line
# 5th line

.read() は中身全てを読み込み。
.readline() は1行のみ読み込み。
.readlines() は全ての行をリストとして読み込み。
strPath = r'file\001.txt'

f = open( strPath )

strLine = f.readline()
print( strLine )

strLine = f.readline()    #読み込む度に次の行へ移動
print( strLine )

lsLine = f.readlines()
print( lsLine )

f.close()

#出力
# 1st line
# 
# 2nd line
# 
# ['3rd line\n', '4th line\n', '5th line']

with を頭につけて with open() とすると
with句の終わりに自動的にファイルが閉じられる。
strPath = r'file\001.txt'

with open( strPath ) as f:    #asを使いfに代入
    lsLine = f.readlines()
                              #close()を使わなくてもここでファイルが閉じる
print(lsLine)

#出力
# ['1st line\n', '2nd line\n', '3rd line\n', '4th line\n', '5th line']


・テキストファイルの書き込み

open()の2つ目の引数に 'w' と指定することで、書き込みモードでファイルを開く。
.write() で文字列を指定して書き込み。
存在しないファイルパスを指定すると、新しくファイルが作成される。
存在するファイルを'w'で開いて書き込むと 内容が上書きされる ので注意。
strPath = r'file\002.txt'

with open( strPath, 'w' ) as f:
    f.write( 'new line' )


存在するファイルに追記するときは 'a' を指定する。
strPath = r'file\002.txt'

with open( strPath, 'a' ) as f:
    f.write( 'new line 2\n' )    #改行は\nで指定する
    f.write( 'new line 3' )


※読み込みの時は 'r' が自動で指定されていた。

0 件のコメント:

コメントを投稿