2014-03-19 2 views
0

그래서 나는이 XML 파일에있는 모든 "레이블"태그를 찾아이 수정 프로그램 파일을 가지고 있으며 수정합니다. label은 최대 세 줄을 포함하는 문자열입니다. 코드는 XML 파일을 조작하고 있습니다.다시 파이썬 코드에 관한

라벨 2 번과 3 행에있는 레이블 2의 단어는 내가 원하지 않는 대문자가 아닙니다. 필자는 프로그램의 논리를 수정하여 두 번 라벨을 쓰지 말아야한다고합니다.

import os 
from io import StringIO, BytesIO 

def splitAndMakeTitleCase(line): 
    # does something not relevant to context 



fileList = open("AllFiles") 
for fileStr in fileList: 
    fileName = fileStr.rstrip('\n') 
    openFile = open(fileName) 
    openNewFile = open(fileName+'TitleCase.xml','w') 
    lines = openFile.readlines() 
    for lineIndex in range(0,len(lines)): 
     line = lines[lineIndex] 
     skip = 0 
     if "label=" in line and "const" not in line: 
      segs = line.split('"') 
      if len(segs) >= 3: 
       pass 
      else: 
       openNewFile.write(lines[lineIndex]) 
       secondTitleCaseLine = splitAndMakeTitleCase(lines[lineIndex + 1]) 
       skip = lineIndex + 1 
       openNewFile.write(secondTitleCaseLine) 
       if '"' not in lines[lineIndex + 1]: 
        thirdTitleCaseLine = splitAndMakeTitleCase(lines[lineIndex + 2]) 
        skip = lineIndex + 1 
        openNewFile.write(thirdTitleCaseLine) 
     openNewFile.write(lines[lineIndex]) 
    openFile.close() 
    openNewFile.close() 
    #cmd = "mv " + fileName + "TitleCase.xml " + fileName 
    #os.system(cmd) 

답변

1

for 루프에서 처음으로 if 루프를 사용하면 파일을 인쇄 할 수 있습니다. 그런 다음 파일의 다른 줄을 인쇄합니다. 제 생각에는 당신이 아마 다른 곳에서이 마지막 줄을 원한다고 생각합니다 :

for fileStr in fileList: 
    fileName = fileStr.rstrip('\n') 
    openFile = open(fileName) 
    openNewFile = open(fileName+'TitleCase.xml','w') 
    lines = openFile.readlines() 
    for lineIndex in range(0,len(lines)): 
     line = lines[lineIndex] 
     skip = 0 
     if "label=" in line and "const" not in line: 
      segs = line.split('"') 
      if len(segs) >= 3: 
       pass 
      else: 
       openNewFile.write(lines[lineIndex]) 
       secondTitleCaseLine = splitAndMakeTitleCase(lines[lineIndex + 1]) 
       skip = lineIndex + 1 
       openNewFile.write(secondTitleCaseLine) 
       if '"' not in lines[lineIndex + 1]: 
        thirdTitleCaseLine = splitAndMakeTitleCase(lines[lineIndex + 2]) 
        skip = lineIndex + 1 
        openNewFile.write(thirdTitleCaseLine) 
     else: 
      openNewFile.write(lines[lineIndex]) 
    openFile.close() 
    openNewFile.close() 
    #cmd = "mv " + fileName + "TitleCase.xml " + fileName 
    #os.system(cmd) 
관련 문제