LoginSignup
3
3

More than 3 years have passed since last update.

Python学習

Last updated at Posted at 2020-01-20

ファイルの入出力

ファイルの読み込み

  • ファイルの読み込みには2種類の方法がある

    • 文字として読み込む
    • バイナリ(Byte型)として読み込む

ファイル制御モード一覧

mode   意味
r 読み込み用に開く (デフォルト)
w 書き込み用に開き、まずファイルを切り詰める
x 排他的な生成に開き、ファイルが存在する場合は失敗する
a 書き込み用に開き、ファイルが存在する場合は末尾に追記する
b バイナリモード
t テキストモード (デフォルト)
+ ディスクファイルを更新用に開く (読み込み/書き込み)
応用 意味
rb バイナリで読み込み
wb バイナリで書き込み

文字列として読み込む方法

text.txt
abc
read.py
# ファイル名を指定
filename = "text.txt"
# 第一引数にファイル名
# 第二引数にファイルの制御モードを指定
# キーワード引数(encoding)には読み込みたい文字コードを指定する
# 制御モードについては上記を参照
# その他の引数についてはURLを参照
# https://docs.python.org/ja/3/library/functions.html#open
with open(filename,"r",encoding="utf-8") as f:
    print(f.read())
>> abc

バイナリを読み込む方法

abc
bytes.py
filename = "binary.bin"

with open(filename,"rb") as f:
    print(f.read())
>> b'abc'

バイナリモードでファイルを読み込むと、バイト型となっているため、文字列として扱う場合は

bytes2text.py
text = binary.decode()

バイト型から文字列型へ型変換を行う必要があります。

文字列を書き込む方法

text.py
filename = "text.txt"
with open(filename,"w",encoding="utf-8") as f:
    f.write('abc')
text.txt
abc

バイト型で書き込む方法

binary.bin
filename = "binary.bin"
with open(filename,"wb") as f:
     f.write('abc'.encode())
binary.bin
abc

バイト型で書き込むには文字列をバイト型に変換する必要があります。

text2bytes.py
binary = text.decode()

※社内学習向けに記載した記事を全体公開

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3