나는 최선을 다해 대답을 찾았지만, 내 요구에 맞는 것을 만들 수 없었다. XML 파일을 사용자 지정 형식으로 다시 형식화하고 문제를 해결하려고합니다. 여기 내 요구 사항입니다. 내가 다음에 그 변환 찾고 있어요Python file.next()가 for 루프를 엉망으로 만들고있다
<parameters>
<parameter name="name1" value="value1"/>
<parameter name="name2" value="value2"/>
<parameter name="name3" value="value3"/>
<parameter name="name4" value="value4"/>
</parameters>
:
나는 다음과 같은 XML 파일이 있습니다.
(param().name("name1").value("value1"),
param().name("name2").value("value2"),
param().name("name3").value("value3"),
param().name("name4").value("value4"));
다음 코드를 사용해 보았는데 원본 파일의 일부 데이터를 출력으로 건너 뛰는 것 같습니다.
with open("myfile","r") as f:
for each_line in f:
current_line = each_line
if current_line.strip().startswith('<'):
split_line = current_line.strip().split(' ')
if split_line[0].lstrip('<') == "parameter":
if f.next().strip() == "</parameters":
print 'param().name(' + split_line[1].split('=')[1] + ').value('+ split_line[2].split('=')[1][:-2] + '));\n\n'
else:
print 'param().name(' + split_line[1].split('=')[1] + ').value('+ split_line[2].split('=')[1][:-2] + ')'
f.next()를 사용하면 문제가 발생하는 것을 볼 수 있습니다. 어떻게 해결해야할지 모르겠습니다.
글쎄 ... XML 파서에 대한 생각을 진지하게 받아 들여야했다. :) 마크. 마지막 줄만 있으면 줄과 세미콜론이 있으면 쉼표로 끝내고 싶다. – Balaji
@BalajiCuttackam : 아, 쉼표를 추가하면 완전히 다시 작성해야합니다. 아마도이 코드를 완전히 버리고 XML 파서를 대신 사용해야 할 때입니다. –
나는 그것을 지금 시험하고있다. .. 제안에 감사드립니다!! – Balaji