「Pythonの基礎 - ファイル」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
241行目: 241行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 上書き (wモード) ====
==== 書き込み / 上書き (wモード) ====
<code>w</code>モードでファイルを書き込む場合、ファイルが存在しない時はファイルを新規作成、ファイルが存在する時は上書きする。(既存のファイル内容は全て削除)<br>
<code>w</code>モードでファイルを書き込む場合、ファイルが存在しない時はファイルを新規作成、ファイルが存在する時は上書きする。(既存のファイル内容は全て削除)<br>
<br>
<br>
272行目: 272行目:
<code>w</code>モードの場合はファイルが存在しても上書きで書き込むため、<code>open</code>関数で指定した文字エンコードを使用してファイルに書き込む。(既存のファイルの文字エンコードは無視される)<br>
<code>w</code>モードの場合はファイルが存在しても上書きで書き込むため、<code>open</code>関数で指定した文字エンコードを使用してファイルに書き込む。(既存のファイルの文字エンコードは無視される)<br>
そのため、文字エンコードが異なる場合でもエラーにはならない。<br>
そのため、文字エンコードが異なる場合でもエラーにはならない。<br>
<br>
==== 追記 (aモード) ====
<code>a</code>モードでファイルを追記する場合、ファイルが存在しない時はファイルを新規作成、ファイルが存在する時はファイルの最後に追記する。(既存の内容はそのまま)<br>
<br>
ファイルに追記する場合は、<code>w</code>モードと同様、<code>write</code>メソッド、または、<code>writelines</code>メソッドを使用する。<br>
<syntaxhighlight lang="python">
f = open('myfile.txt', 'a')
f.write('こんにちは\n')
datalist = ['お元気ですか?\n', 'それではまた\n']
f.writelines(datalist)
f.close()
</syntaxhighlight>
<br>
<u>※注意</u><br>
<u>既存のファイルに追記する時、ファイルの文字エンコードとopen関数の文字エンコードが異なる場合、</u><br>
<u><code>write</code>メソッドを実行する時はエラーは発生しないが文字化けするため注意すること。</u><br>
<br>
<syntaxhighlight lang="python">
f = open('myfile.txt', 'a', encoding='UTF-8')
f.write('それではまた\n')
f.close()
</syntaxhighlight>
<br>
==== ファイルを新規作成して書き込む (xモード) ====
<code>x</code>モードでファイルに書き込む場合、ファイルが存在しない場合はファイルを新規作成して書き込む。<br>
ファイルが存在する場合は、<code>open</code>関数を実行した時点で例外<code>FileExistsError</code>が発生する。<br>
<br>
ファイルに書き込む場合、<code>w</code>モードと同様、<code>write</code>メソッド、または<code>writelines</code>メソッドを使用する。<br>
<syntaxhighlight lang="python">
f = open('myfile.txt', 'x', encoding='UTF-8')
f.write('こんにちは\n')
datalist = ['お元気ですか?\n', 'それではまた\n']
f.writelines(datalist)
f.close()
</syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]

案内メニュー