#はじめに
この記事はPython3初学者が、DIVE INTO EXAMのPython3エンジニア認定基礎試験の問題を引用し、解答するものです。間違い等があればご教示くださると嬉しいいです。
#設問
ファイルの読み書きで使用する「open」関数のモードについて、存在しないものを選択肢の中から選びなさい。
#解答群
- r-
- w
- a
- r+
#正解
r-
#解説
リファレンスによるとopen関数の引数modeで指定できる値は以下の通り。
|文字|意味|
|---|---|
|'r'|読み込み用に開く (デフォルト)|
|'w'|書き込み用に開き、まずファイルを切り詰める|
|'x'|排他的な生成に開き、ファイルが存在する場合は失敗する|
|'a'|書き込み用に開き、ファイルが存在する場合は末尾に追記する|
|'b'|バイナリモード|
|'t'| テキストモード (デフォルト)|
|'+'|ディスクファイルを更新用に開く (読み込み/書き込み)|
選択肢 r-
-というオプションは存在しないため○
f = open('test.txt','r-') # <= ValueError: invalid mode: 'r-'
f.close()
選択肢 w
wというオプションは書き込みであり、存在するため×
f = open('test.txt','w')
f.write('kemono friends\n')
f.close()
# No Error
kemono friends
選択肢 a
aというオプションは追記であり、存在するため×
f = open('test.txt','a')
f.write('serval chan\n')
f.close
# No Error
kemono friends
serval chan
##選択肢 r+
rは読み込み、+は読み書き両方指定するオプションで存在するため×
f = open('test.txt','r+')
f.write('kaban chan\n')
f.close
# No Error
kemono friends
serval chan
kaban chan
余談
withステートメントを使えばcloseは省略できる
with open('test.txt','a') as f:
f.write('lucky beast\n')
# No Error
kemono friends
serval chan
kaban chan
lucky beast