关于 def rewind(f) 的解释:f.seek(0)
Explanation about def rewind(f): f.seek(0)
我正在看书,有一个代码里面有这一行
def rewind(f):
f.seek(0)
这是我无法理解的台词
你能解释一下这是怎么回事吗?
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline()
current_file = open(input_file)
print " first lets print the whole file:\n"
print_all(current_file)
print "now lets rewind, kind of like a tape."
rewind(current_file)
print "lets print three lines:"
current_line = 1
print_a_line(current_l, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
-我使用 python 2.7
感谢您的宝贵时间
我会尝试在 tutorials point
上阅读 this post。
文章顶部应该对您有所帮助:
fileObject.seek(offset[, whence])
The method seek()
sets the file's current position at offset
. The whence
argument is optional and defaults to 0, which means absolute file positioning; other values are: 1, which means seek relative to the current position, and 2, which means seek relative to the file's end.
所以在您的代码中,这是在函数 rewind()
中调用的,它是在这一行调用的:
rewind(current_file)
其中:
f.seek(0)
被调用。
所以它在您的代码中所做的是将文件中的当前位置移动到 start (index 0)。 this在代码中的使用是在前面几行中,刚刚读取了整个文件,所以位置是在文件的最末尾。这意味着对于未来的事情(例如调用 f.readline()
),你会在错误的地方,而你想在开头 - 因此 .seek(0)
.
如果您更改为
定义倒带(f):
f.seek(2)
你在 TERMINAL 中看不到 input_file.. 的前两个字母
不在原始文件中
我正在看书,有一个代码里面有这一行
def rewind(f):
f.seek(0)
这是我无法理解的台词 你能解释一下这是怎么回事吗?
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline()
current_file = open(input_file)
print " first lets print the whole file:\n"
print_all(current_file)
print "now lets rewind, kind of like a tape."
rewind(current_file)
print "lets print three lines:"
current_line = 1
print_a_line(current_l, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
-我使用 python 2.7
感谢您的宝贵时间
我会尝试在 tutorials point
上阅读 this post。
文章顶部应该对您有所帮助:
fileObject.seek(offset[, whence])
The method
seek()
sets the file's current position atoffset
. Thewhence
argument is optional and defaults to 0, which means absolute file positioning; other values are: 1, which means seek relative to the current position, and 2, which means seek relative to the file's end.
所以在您的代码中,这是在函数 rewind()
中调用的,它是在这一行调用的:
rewind(current_file)
其中:
f.seek(0)
被调用。
所以它在您的代码中所做的是将文件中的当前位置移动到 start (index 0)。 this在代码中的使用是在前面几行中,刚刚读取了整个文件,所以位置是在文件的最末尾。这意味着对于未来的事情(例如调用 f.readline()
),你会在错误的地方,而你想在开头 - 因此 .seek(0)
.
如果您更改为 定义倒带(f): f.seek(2) 你在 TERMINAL 中看不到 input_file.. 的前两个字母 不在原始文件中