2014-11-19 4 views
0

내가 현재 가지고 :파이썬 : 빈 줄까지 파일을 출력 하시겠습니까?

for i in range (srange, erange): 
    lines=open("%s\%s\propkaoutputfiles\propka_protein_output_%s%s.pka" %(filepath, name, aminoacid, i), "r") 
    FILE=open("%s\%s\propkamanip\%sinpropka%s.txt" %(filepath, name, aminoacid, i), "w") 
    for line in lines: 
     if "0.00 0" and " B 7."in line and (line.split()[0]) == "%s" %aminoacid: 
      print >> FILE, " %s in %s Structure %s" %(aminoacid, name, i) 
      print >> FILE, line 
     if "0.00 0" and " B 8."in line and (line.split()[0]) == "%s" %aminoacid: 
      print >> FILE, " %s in %s Structure %s" %(aminoacid, name, i) 
      print >> FILE, line 

이 같은 외모를 읽고있다 데이터, 그래서 내부에 포함하고 싶은 내 코드 "줄 경우"그게 그 기준을 충족하는 경우 그 선을 타고을 인쇄합니다 빈 줄 때까지 내 새 파일에 문서의 다음 행은 발견 :

LYS B의 8.X 0.00 0

LYS B

LYS B

여기에 빈 줄

ARG B 8.9 0.00

여기

파이썬 newb, 감사합니다!

+1

질문에서 코드의 서식을 올바르게 지정하십시오 (들여 쓰기가 잘못되었습니다). –

+0

@ Jan-PhilipGehrcke 죄송합니다. 포맷팅을 시도하면서 그 부분을 놓쳤습니다. –

답변

0
file1 = open("your input file", "r") 
file2 = open("your output file", "w") 

while True : 
    line = file1.readline() 
    if line : 
     if "your criteria ..... " in line : 
      file2.write("your header here\n") 
      file2.write(line) 
      line = file1.readline() 
      while line and line != "\n" : 
       file2.write(line) 
       line = file1.readline() 
    else : 
     file1.close() 
     file2.close() 
     break