2014-12-11 3 views
-1

일부 열에 파이프로 구분 된 여러 값이있는 아래의 한 행과 비슷한 탭 구분 텍스트 파일이 설정되어 있습니다.탭으로 구분 된 텍스트 파일 비정규 화

1234 PreferredName Property1a Property2a을

1234 동의어 1 :

1234 PreferredName Property1a는 Property2a는 | Property2b | | Property2c Synonym1 다음과 같이 Synonym2

나는이 비정규 스크립트를 필요 PreferredName Property1a Property2b 동의어 2

1234 PreferredName Property1a Property2c 동의어 1

필기 입력 값의 순서는 중요하지 않습니다. 예를 들어 위의 3 행 5 열에서 동의어 1 또는 동의어 2가 적절한 값이됩니다.

+2

쓴 스크립트에 문제가 있습니까? – DSM

답변

0

당신이 문자열 s로 텍스트를받은 한 가정 :

s2=""  
L=s.split(" ") 
for x in L: 
    i=x.find("|") 
    s2+=x[:i]+" " 
print s2 

한 줄 비정규해야한다고. 파일의 각 줄마다이 작업을 수행하면 원하는 모든 문자열이 제공되어야합니다. 그러면 원하는 파일을 새 파일에 쓰거나 문자열에 저장할 수 있습니다. 파일에 대한

:

result="" 
f=open('file.txt','r') 
lines=f.readlines() 
f.close() 
for s in lines: 
    L=s.split(" ") 
    for x in L: 
     i=x.find("|") 
     if i!=-1: 
     result+=x[:i]+" " 
     else: 
     result+=x.strip("\n")+" " 
    result=result[:-1]+"\n" 

당신은 비정규 파일을 포함하는 단일 문자열로 끝낼한다. 새 파일에 글을 쓰고 싶다면 :

f=f.open('newfile.txt','w') 
f.write(result) 
f.close() 
+0

이것은 처음으로 새로운 비정규 화 된 행을 제공 할 뿐이지 만 나머지 새로운 비정규 화 된 행, 어떤 아이디어도 제공하지 않습니까? – slorga

+0

내가 편집했습니다. 이게 당신이 찾고있는 것에 더 가깝습니까? – Academiphile

+0

우수합니다. 감사합니다. – slorga

관련 문제