모든 해답이 이미 언급했다. 그래서, 저는 주로 프로그램의 라인 별 설명에 중점을 둘 것입니다.
#!/usr/bin/env python
이 줄은 파일이 파이썬 스크립트이고 또한 어떤 파이썬 환경이 사용되고 있는지를 지정합니다.
더 나은 이해를 위해이 읽기 :
는
Why do people write #!/usr/bin/env python on the first line of a Python script?
다음 줄이이 현재 스크립트가 수행하는 작업을 지정하는 주석 행입니다
# 'makeTextFile.py -- create text file'
입니다.
import os
ls = os.linesep
이 줄은 os 모듈을 가져옵니다. 모듈은 파이썬 코드로 구성된 파일입니다.모듈은 함수, 클래스 및 변수를 정의 할 수 있습니다.이 경우 가져온 모듈은 운영 체제 종속 기능을 사용하는 방법을 제공합니다. 그런 다음 운영 체제와 관련된 파일에 사용되는 줄 구분 기호 (한 줄을 다른 줄로 구분하는 문자열)를 저장합니다. 여기에 운영 체제 모듈에 대한 읽기 - https://docs.python.org/2/library/os.html
이 단계 후에는 대답 중 하나에 명시된 바와 같이 (루프 내부)에 FNAME를 얻을 수 있습니다. 'fname'은 생성 될 파일 이름이 저장되는 변수입니다.
while True:
if os.path.exists(fname):
print "ERROR: '%s' already exists" % fname
else:
break
이것은 while 루프 (조건이 참일 때까지 계속되는 반복 코드 블록)입니다. 특정 이름의 파일이 있는지 확인합니다.이 작업은 os.path 조작자의 도움으로 수행됩니다. 존재한다면, if (if :) 블록 내부에 인쇄되는 Error가 존재하며, 존재하지 않는 파일 이름이 나타날 때까지이 루프가 반복됩니다. 이 경우 (파일 이름이 존재하지 않음) while 루프에서 빠져 나오는 break가 발생합니다.
all = []
이렇게하면 all이라는 목록 데이터 구조가 지정됩니다. 이 선언의 동기는 모든 사용자 입력을 저장한다는 것입니다.
print "\nEnter lines (' . ' by itself to quit). \n"
이 자신의 message.It 그들에게 기대 것과 같은 사용자에게 힌트 입력에 사용자를 제안 인터프리터 화면에 선을 인쇄합니다. 또한 '.'입력을 종료하도록 지정합니다. 만.
while True:
entry = raw_input('> ')
if entry == '.':
break
else:
all.append(entry)
이것은 반복적으로 사용자 입력을 받아서 목록에 추가하는 또 다른 루프입니다. 단일 '.' 루프가 끊어지고 사용자 입력이 끝났습니다. 다음 단계는 파일에 기록하는 것입니다. 다음 코드 세트는 그 목적으로 작성되었습니다.
fobj = open(fname, 'w')
fobj.writelines(['%s%s' % (x, ls) for x in all])
fobj.close()
파일이 '쓰기'모드로 열립니다. 모드는 파일이 열리는 목적을 지정합니다. 여기에서 'w'는 파일이 쓰기 목적으로 만 열리도록 지정합니다. 열린 파일은 fobj 변수로 액세스됩니다. 다음 줄은 all (목록)의 내용을 파일에 씁니다. 'for all in'은 목록 안의 각 항목을 반복합니다. 그러면이 x와 줄 분리 기호 (ls에 저장 됨)가 기록됩니다. 마지막으로 모든 내용이 기록 된 후 파일이 닫힙니다.
는
저자는 그것은 단지 전체 작업이 끝난 것을 알 수
print 'DONE'
를 인쇄합니다. 이는 중복 된 단계이므로 피할 수 있습니다.
접근법의 수정은 인정 될 것이다.
첫 번째 프로그램 인 경우 조금 야심적입니다. 보다 복잡한 입출력 형식 인 파일 조작을 시도하기 전에 주어진 프로그래밍 언어에서 기본 입/출력을 더 잘 이해해야합니다. – Edwin