对于额外的运动20我被告知评论我认为每条线的作用。寻求我发现令人困惑。如果有人愿意查看我对来源的评论,看看我是否理解正确。我可以跳过它,但我觉得重要的是我理解这一点。
感谢
from sys import argv #imports argv from sys moduel
script, input_file = argv #unpacks the startup arguments to script and input_file variables
def print_all(f): #defines a function that uses the read() function on whatever is in the parameter(current_file in this case)
print f.read()
def rewind(f): #not a clue what this does really...moves to byte 0 of the file??
f.seek(0)
def print_a_line(line_count, f): #sets a function that reads a line from the current_file
print line_count, f.readline()
current_file = open(input_file)
print 'first of all, lets read the wole file:\n'
print_all(current_file)
print 'now lets rewind, kind of like a tape'
rewind(current_file)
print 'lets print 3 lines:'
current_line = 1
print_a_line(current_line, 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)
答案 0 :(得分:3)
是的,它将文件的当前位置设置为第一个字节。这可以在documentation for file.seek:
中看到
file.seek(offset[, whence])
设置文件的当前位置,如stdio的fseek()。 whence参数是可选的,默认为os.SEEK_SET或0(绝对文件定位);其他值是os.SEEK_CUR或1(相对于当前位置搜索)和os.SEEK_END或2(相对于文件的结尾搜索)。没有回报值。
请注意,由于您没有为whence
参数提供值,因此使用默认值os.SEEK_SET
。这意味着绝对文件定位(即相对于文件的开头)。
答案 1 :(得分:2)
file.seek返回到文件的开头。没有它,你只能迭代一次文件。