그래서 저는 "파이썬을 배우는 것이 힘든 방법"인 연습 20을 진행하고 있습니다. 레슨에서는 파일을 참조하기위한 "seek()"함수를 소개합니다. 이 경우, 우리는이 : 파이썬 : seek (0)과 open()은 본질적으로 같은 일을하고 있습니까?
def rewind(f):
f.seek(0)
추구 호출하는 함수를 생성 (0) 프로그램에 사용 된 파일의 시작 부분에 대한 참조 점을 의미한다. 이제 여러 수업에서 파일을 여는 데 사용할 변수 (이 경우
current_file = open(input_file)
)를 할당했습니다.
제 질문은, 처음부터 파일을 열어 찾기 (0)를 사용하는 것이 다시 열기 명령을 사용하는 것과 같은지 여부입니다 (예 : open(current_file)
). 어떤 차이가 있다면 무엇입니까? 여기에 전체 수업에 대한 코드는 다음과 같습니다
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 let's print the whole file:\n"
print_all(current_file)
print "Now let's rewind, kind of like a tape."
rewind(current_file)
print "Let's print three 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)
Seek은 파일을 열지 않으며 현재 파일을 되감습니다. 나는 그것이 당신이 의도 한 것이라고 확신하지만 _ "처음부터 (0)"을 사용하여 파일을 열려고합니다. _가 다릅니다. 당신은 명확히 할 수 있습니까? – tdelaney
btw'open (..., "a")'는 파일을 열고 포인터를 파일 끝으로 이동하여 seek (0, 2)를 수행합니다. – furas
FYI : http://sopython.com/wiki/LPTHW_Complaints – jonrsharpe