独学でPythonを勉強しているのですが
csvファイルを扱う時のseek()メソッドが理解できません。
ファイル名.seek(0)でなぜ「0」と表示されるのか
かみ砕いて教えていただけますと幸いです。
これではあなたが実行したコードがわからないです。
そもそも、なぜcsvファイルをseek()で読もうとしているのかがわかりませんね。
普通ならread()、readlines()、readline()辺りではないでしょうかね?
サンプル↓
Python: テキストファイルの読み込み - read()、readlines()、readline()メソッド - Yukun's Blog
https://yukun.info/python-file/
そうですね。ファイル名.seek(0)とはどういう事でしょうか?
ファイルを読み込むならopen文で、f = open('test.csv', 'r') ,あるいは、with open('test.csv, 'r') as f:
など定義されていなければ分かりません。
前提として、test.csvになんらかのデータが入っている事が条件です。
従って、ファイル名.seek(0)だけで、seek()メソッドを理解する上では、なぜ、0が出力されたのか
思いつきません。
コードの記載をお願いします。seekの理解は、その後からです。
よろしくお願いします。
一応seek()のドキュメントも貼っておきます。
7. 入力と出力 — Python 3.6.5 ドキュメント
https://docs.python.jp/3/tutorial/inputoutput.html
import csv
f=open('hoge.csv')
reader=csv.reader(f)
print(next(reader))
f.seek(0)
だったとして、seekは標準関数openで返されるファイルオブジェクトのメソッドになります。
このインターフェースはioで定義されいるので
https://docs.python.jp/3/library/io.html#module-io
に仕様が載っています。
「新しい絶対位置を返します。」とあるので、もしインタプリタで実行されれば0が出力されます。
まぁ一度読んでから再度読みたかったんだと思います。
バッファリングされてたりすると必ずできるのかは分かりませんけども…
回答1件
あなたの回答
tips
プレビュー