2014-03-26 2 views
0

700 파일에서 처음 4 줄을 삭제하는 작업이 있습니다. 처음 4 줄을 지우고 수정 된 파일을 새 디렉토리에 복사하는 스크립트를 작성했습니다. 원본과 새 파일 두 개를 비교했을 때 처음 4 줄과 마지막 4 줄을 삭제 한 것으로 나타났습니다. 이것은 내 목표가 아니 었습니다. 즉 모든 행은 첫 번째 4 행을 제외하고 동일해야합니다. 마지막 4 줄을 자르는 이유와 그것을 고치는 방법에 대해 알고 있습니까? 감사 :파이썬 스크립트가 너무 많은 행을 삭제합니다.

그것은 나를 위해 더 이상 문제가되지 않습니다
fileList = os.listdir(sys.argv[1]) 

    for file in fileList: 
     absFile = os.path.join(os.path.abspath(sys.argv[1]), file) 
     fileName = file 
     FILE2 = open(fileName, 'w') 
     with open(absFile, 'r') as FILE: 
      FileLines = FILE.readlines() 
      for line in FileLines: 
       nline = line.rstrip() 
       if FileLines.index(line) < 4: 
        continue 
       else: 
        FILE2.write(line) 
      shutil. copy(fileName, sys.argv[2]) 

     FILE2.close() 
     os.remove(fileName) 

if __name__ == '__main__': 
    main() 
+1

중첩 된 'for'안에 일부 print 문을 사용하면 어떤 일이 일어나는지 파악할 수 있습니다. – Christian

+1

여기에서 힌트를 사용하십시오 : http://stackoverflow.com/questions/9578580/skip-first-couple-of-lines-while-reading-lines-in-python-file –

+0

감사합니다, 나는 두 가지 제안을 시도했습니다 : 두 번째 차이를 만들지 않았다. 처음 시도했을 때, 즉 FILE2.write (줄) 앞에 인쇄 줄을 넣으면 모든 줄이 인쇄되고 마지막 4 줄이 잘리지 않았다. 글쎄, 뭔가 잘못 FILE2에 쓰는 것 같습니다 ... 여전히 명확하지 않습니다. – susja

답변

0

. 이 경우 실패의 원인은 함수의 디자인이 잘못되었습니다. 나는 그것을 고쳤다. 티켓을 폐쇄 할 수 있습니다.

관련 문제