学习python艰难的方式锻炼20帮助

时间:2011-03-07 20:42:23

标签: python

对于额外的运动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)

2 个答案:

答案 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返回到文件的开头。没有它,你只能迭代一次文件。