Pythonでのseek()関数の使用法は何ですか?


ベストアンサー

構文:

fileObject.seek(offset[, whence])

  • オフセット-これはファイル内の読み取り/書き込みポインタの位置です。
  • whence −これはオプションで、デフォルトはファイルの絶対位置を意味する0、その他の値は現在の位置を基準にしたシークを意味する1、ファイルの終わりを基準にしたシークを意味する2です。

Sample.txt:

Assuming that "Sample.txt" file contains following text:

This is 1st line

This is 2nd line

This is 3rd line

This is 4th line

This is 5th line

Pythonプログラム:

# Open a file

fo = open("Sample.txt", "r+")

print ("Name of the file: ", Sample.name)

line = fo.readlines()

print ("Read Line: \%s" \% (line))

# Again set the pointer to the beginning

fo.seek(0, 0)

line = fo.readline()

print ("Read Line: \%s" \% (line))

# Close opened file

fo.close()

出力:

Name of the file: Sample.txt

Read Line: ["This is 1st line\n", "This is 2nd line\n", "This is 3rd line\n", "This is 4th line\n", "This is 5th line"]

Read Line: This is 1st line

これがお役に立てば幸いです…

ありがとうございます:)

回答

読み取り用にファイルを開いたと仮定します(または書き込み、概念は同じままです)。

fh = open(“ foo.txt”、“ r”)

そしてf.readline()を使用してファイルを読み取りました。ファイル内の特定の位置にあるカーソルについて考えてみてください。たとえば、読み取るファイルを開いたばかりの場合、カーソル位置は0です。readline()を実行すると、位置が変わります。

これを試してください:

>>> fh=open(“foo.txt”, “r”)

>>> fh.read()

>>> fh.read()

‘’

line4を実行すると、何も実行されません表示されています。これは、2行目を実行した後、カーソルがすでにファイルの終わりまで移動しているためです。表示するものはこれ以上ありません。

seek()メソッドを使用してカーソルの位置を変更することができます。 seek()の最も簡単な使用法では、

>>> fh.seek(0)

>>> fh.read() <を使用します。 / p>

ファイルの内容が再度表示されます。ここで起こったことは、カーソルがファイルの先頭に移動したことです。

seek()は2つのパラメータを取ります。

  1. 指定されたバイトオフセットに位置をリセットします
  2. from where-は、0-開始、1-現在の位置、または2-終了に対するオフセット位置を示します。

2番目のパラメーターのデフォルト値は0です。オフセット値は必須です。この関数を呼び出している間。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です