Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでファイルの読み書き位置を設定する方法:seek()メソッドの使い方

seek()メソッドでファイル位置を設定する

Pythonでファイルの読み書き位置を変更するには、ファイルオブジェクトの seek(offset[, whence]) メソッドを使用します。これはC言語の標準入出力ライブラリにある fseek() 関数に相当する機能で、ファイル内の現在位置を任意の場所へ移動させることができます。

whence引数の意味

第2引数の whence は省略可能で、デフォルト値は0です。指定できる値は以下のとおりです。

  • 0(SEEK_SET):ファイルの先頭からの絶対位置に移動する(デフォルト)
  • 1(SEEK_CUR):現在位置からの相対位置に移動する
  • 2(SEEK_END):ファイルの末尾からの相対位置に移動する

使用例

たとえば、my_file というファイルに「Hello\nworld」というテキストが保存されている場合、最初の「l」の直前にポインタを移動したいときは、次のように記述します。

f = open('my_file', 'r')
f.seek(2)
f.close()

f.seek(2) を実行すると、読み取りポインタは先頭から2バイト目、つまり最初の「l」の直前(「He」の後ろ)へ移動します。この状態で f.read() を呼び出せば、「llo\nworld」が読み込まれます。

テキストモード利用時の注意点

テキストモード('r''w' など)で開いたファイルでは、whence=1whence=2 を組み合わせた任意のオフセット指定がエラーになることがあります。正確なバイト単位の位置指定が必要な場合は、バイナリモード('rb' など)でファイルを開くか、tell() メソッドが返す値を使って移動先を指定すると安全です。

  1. 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-

  2. PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】

    Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins