Pythonのseek()メソッドでファイルの読み書き位置をリセットする方法
Pythonでファイルの読み書き位置(ファイルポインタ)を移動・リセットしたい場合は、seek(offset[, whence])メソッドを使用します。このメソッドはC言語のstdioにおけるfseek()と同様に、ファイル内の現在位置を設定します。
seek()メソッドの基本構文
seek()メソッドは以下のように記述します。
f.seek(offset, whence)
各引数の意味は次のとおりです。
- offset: 移動するバイト数
- whence: 基準となる位置(省略可能、デフォルトは0)
0: ファイルの先頭からの絶対位置1: 現在位置からの相対位置2: ファイルの末尾からの相対位置
使用例:ファイルの先頭に戻る
すでに開いているファイルの読み書き位置を先頭に戻したい場合は、offsetに0を指定して以下のように記述します。
f = open('my_file.txt', 'r')
f.seek(0) # ポインタをファイルの先頭へ移動
f.close()これにより、ファイルポインタがファイルの先頭に移動し、再度最初から内容を読み込めるようになります。
ファイルの末尾に移動する
第2引数に2を指定すると、ポインタをファイルの末尾に移動できます。追記処理やファイルサイズの確認などに便利です。
f = open('my_file.txt', 'r')
f.seek(0, 2) # ポインタをファイルの末尾へ移動
print(f.tell()) # 現在位置(=ファイルサイズ)を表示
f.close()補足:tell()で現在位置を確認する
tell()メソッドを使うと、現在のファイルポインタの位置(先頭からのバイト数)を取得できます。seek()と組み合わせて使うことで、位置の管理がより簡単になります。
なお、テキストモード('r'など)で開いたファイルでは、whence=1やwhence=2の相対指定に制限がある場合があります。バイナリモード('rb'など)であれば、すべてのwhence値を自由に使用できるため、用途に応じてモードを選択しましょう。
-
PythonでpandasのDataFrameをCSVファイルに書き込む方法【to_csv()の使い方】
pandasのDataFrameをCSVファイルに出力する基本 PythonでpandasのDataFrameをCSVファイルに書き込むには、to_csv()メソッドを使用します。このメソッドは、DataFrameの内容をそのままCSV形式で保存できる、最もシンプルで一般的な方法です。 まずはサンプルデータとして、リストを値にもつ辞書を作成しましょう。 # リストの辞書を定義 d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-
-
PythonでCSVファイルを読み書きする方法|csvモジュールとPandasの使い方を徹底解説
この記事では、Pythonを使ってCSVファイルを読み書きする方法を解説します。標準ライブラリのcsvモジュールと、データ分析に広く使われているPandasの両方のアプローチを、実際のコード例とともに紹介します。 csvモジュールでCSVファイルを読み込む まずは標準ライブラリのcsvモジュールを使う基本的な方法です。以下のコードでは、orders.csvというファイルを読み込み、1行ずつデータを処理しています。 import csv f = open(orders.csv, rt) orders = csv.reader(f) for order in orders: print(