第8章_ファイルの入出力
今回の項目では、ファイルの入出力ついて出題されます。
本試験の主教材である「Python3エンジニア認定基礎試験問題集」では第8章(P112~P113)の3問の内容です。
練習問題 1
次以下のコードは、ファイルへの書き込みを表しています。間違っている部分はどこでしょう。
fp = open("data1.txt")
fp.write("...")
fp.close()
答えはコチラをクリック!
答え:fp = open(“data1.txt”)
ポイント
ファイルの書き込みの時、open()関数の引数は〇〇が必要
ファイルの書き込みの時、open()関数の引数はw(新規書き込み)が必要
このコードでは、ファイルへの書き込みを意図していますが、ファイルを開く際のモードが誤っています。
- 開くモードの指定が不足: open(“data1.txt”) という部分はファイルをデフォルトで 読み込みモード(”r”)で開いています。このモードではファイルを読み取ることしかできず、書き込むことはできません。そのため、fp.write(“…”) を実行するとエラーが発生します。
- 修正方法: ファイルに書き込みを行いたい場合は、書き込みモード(”w”)でファイルを開く必要があります。
修正後のコード例は次の通りです:
fp = open(“data1.txt”, “w”)
fp.write(“…”)
fp.close()
この修正により、ファイルに正しく書き込みを行うことができます。
練習問題 2
次のコードを実行してファイルの内容を書き込みたいとき誤っている部分はどこでしょう。
import json
data1 = [{"key": 1}, {"key": 2}]
fp = open("test.json", "w")
json.write(data1, fp)
fp.close()
答えはコチラをクリック!
答え:json.write(data1, fp)
ポイント
JSONファイルの書き込みは〇〇を用いる
JSONファイルの書き込みはjson.dump()を用いる
json.write の誤り: JSONモジュールには write という関数は存在しません。JSON形式のデータをファイルに書き込む場合、json.dump() を使用する必要があります。
修正されたコードは以下の通りです:
import json
data1 = [{“key”: 1}, {“key”: 2}]
fp = open(“test.json”, “w”)
json.dump(data1, fp)
fp.close()
このように書くことで、JSONデータをファイルに正しく書き込むことができます。
練習問題 3
次のコードの誤っている部分を指摘してください。
import json
fp = open("test.json")
data = json.read(fp)
答えはコチラをクリック!
答え:data = json.read(fp) → data = json.load(fp)
ポイント
JSONファイルを読み込む際は○○メソッドを用いる。
JSONファイルを読み込む際はjson.load()メソッドを用いる。
- 誤り: json.read(fp)という関数を使用していますが、jsonモジュールにはreadという関数は存在しません。
- 正しい方法: JSONデータを読み込むには、json.load()関数を使う必要があります。この関数は、ファイルオブジェクトからJSON形式のデータを読み込み、対応するPythonのデータ型(通常は辞書)に変換します。
確認問題 1
次のコードを実行してファイルに出力したい場合空欄➀に入るものとして正しいものを選んでください。
fp = open("data1.tex", "w")
➀
fp.close()
1、dump(fp, “…”)
2、wrote(fp, “…”)
3、fp.dump(fp, “…”)
4、fp.write(fp, “…”)
答えはコチラをクリック!
答え:4
この問題は、ファイルにデータを書き込むための正しい方法を選ぶものです。
選択肢の説明:
- dump(fp, “…”) は存在しない関数です。dump は通常Pythonの標準ライブラリの pickle モジュールで使用されますが、今回はファイル操作なので不適切です。
- wrote(fp, “…”) は存在しない関数です。write が正しいメソッドです。
- fp.dump(fp, “…”) はPythonの標準のファイルオブジェクトメソッドには存在しないため誤りです。
- fp.write(“…”) が正しい選択です。このメソッドを使ってファイルに文字列を書き込みます。ただし、ファイルを ‘w’ モードで開いている前提で使われます。
したがって、最も適切な選択肢は 4 の fp.write(“…”) です。
確認問題 2
次のコードを実行してファイルにJSON形式で出力しいます。空欄➀に入る記述として間違っているものを選んでください。
import json
data1 = [{"key": 1}, {"key": 2}]
fp = open("test.json", "w")
➀
fp.close()
1、json.dump(data1, fp)
2、json.dumps(data1, fp)
3、json.dump(fp=fp, obj=data1)
4、fp.write(json.dump(data1))
答えはコチラをクリック!
答え:2
- json.dump(data1, fp)
正しい記述です。data1をファイルポインタfpに直接書き込む関数です。 - json.dumps(data1, fp)
間違っています。json.dumpsはオブジェクトをJSON形式の文字列に変換するだけで、ファイルに直接書き込むことはできません。ファイルに書き込むには、json.dumpを使用する必要があります。 - json.dump(fp=fp, obj=data1)
正しい記述ですが、引数の順序を逆にしています。Pythonではキーワード引数を使うことで順序に関係なく渡すことができますが、あまり一般的ではありません。 - fp.write(json.dump(data1))
正しい記述です。json.dumpは戻り値がNoneであるため、fp.writeに渡しても意味がありませんが、書き込むことはできます。
したがって、間違っているものは、2 です。
確認問題 3
次のコードを実行してJSONファイルを読み込みます。空欄➀に入る記述として正しいものを選択してください。
import json
fp = open("test.json")
➀
1、data = json.load(fp)
2、data = json.loads(fp)
3、data = json.read(fp)
4、data = json.reads(fp)
答えはコチラをクリック!
答え:1
このコードは、Pythonの標準ライブラリであるjsonモジュールを使用してJSONファイルを読み込む処理を行っています。
- import json:
- jsonモジュールをインポートしています。このモジュールは、JSON形式のデータをPythonのデータ型に変換するために使用されます。
- fp = open(“test.json”):
- “test.json”という名前のファイルを開き、ファイルオブジェクトfpに割り当てています。デフォルトでは読み込みモードで開かれます。
- data = json.load(fp):
- json.load()関数を使って、開いたファイルオブジェクトfpからJSONデータを読み込み、対応するPythonのデータ型(例えば辞書やリストなど)に変換し、変数dataに格納しています。
このコードを実行すると、test.jsonファイルの内容がPythonのデータ構造として変数dataに読み込まれます。
次回は…
次回は「017_Pythonエンジニア認定基礎試験9-1~4」です。
ファイルの入出力について学びましょう!
参考資料一覧:Python3エンジニア認定[基礎試験]問題集
https://www.pythonic-exam.com
https://data-engineer-japan.com
https://mynavi-agent.jp
https://python-basic.com
https://www.tokai-bs.co.jp
https://freelance.techcareer.jp/articles/wp/skills/python/detail/550/
https://pythonzen-pep8-exam.jp/