2014-11-03 5 views
0

두 문자열 사이의 영역을 추출한 텍스트 파일이 있습니다. 추출 된 영역은 다음과 같습니다.데이터를 추출하고 파이썬으로 바꾸기

title "A" "B" "C" "D" "E" "F" 
number "G1" "G2" "G3" "G4" "G5" "G6" 
data "aaa,bbb" "sss,ddd" "fff,ggg" "rrr,eee" "aaa,ooo" "ggg,aaa" 

저는 CSV 파일에 쓰고 싶습니다.

title A B C D E F 
number G1 G2 G3 G4 G5 G6 
data aaa,bbb sss,ddd fff,ggg rrr,eee aaa,ooo ggg,aaa 
:

title 
"A" 
"B" 
"C" 
"D" 
"E" 
"F" 
number 
"G1"  
"G2"  
"G3"  
"G4"  
"G5"  
"G6" 
data 
"aaa bbb"  
"sss ddd"  
"fff ggg"  
"rrr eee"  
"aaa ooo"  
"ggg aaa" 

나는 이런 식으로해야하지만, 심지어 구분 기호로 "\의 t"를 지정한 후,이 같은 새로운 라인 뭔가에 데이터를 얻을 수있는 행의 별도의 세포에 쉼표 및 탭 근처 분할이다

행의 개별 셀에 탭으로 구분됩니다. 어떤 도움을 주셔서 감사합니다.

+0

'추출 된 영역은 다음과 같습니다.'-이 추출 된 영역이 목록/문자열/파일/...에 있습니까? – inspectorG4dget

+0

@ inspectorG4dget 현재 파일에 있습니다. 'if line.startswith ("! Sample_title") : copy = True outfile.write (line)'파일에 쓸 수 있습니다. – abn

답변

0

infile.csv :

title "A" "B" "C" "D" "E" "F" 
number "G1" "G2" "G3" "G4" "G5" "G6" 
data "aaa,bbb" "sss,ddd" "fff,ggg" "rrr,eee" "aaa,ooo" "ggg,aaa" 

outfile.csv :

title A B C D E F 
number G1 G2 G3 G4 G5 G6 
data aaa,bbb sss,ddd fff,ggg rrr,eee aaa,ooo ggg,aaa 

코드 : 사용

In [40]: import csv 

In [41]: with open('infile.csv') as infile, open('outfile.csv', 'w') as outfile: 
    ....:  writer = csv.writer(outfile, delimiter='\t') 
    ....:  for row in csv.reader(infile, delimiter='\t', quotechar='"'): 
    ....:   writer.writerow(row) 
    ....:   
0

정규식

f=open('yoyr_file.txt','r') 
f=f.readlines() 
for x in f: 
    print " ".join(re.findall('\w+,?\w*',x)) 

출력 :

'title A B C D E F' 
'number G1 G2 G3 G4 G5 G6' 
'data aaa,bbb sss,ddd fff,ggg rrr,eee aaa,ooo ggg,aaa' 

readlines()이 라인의 목록으로 파일을 읽을 후 나는 패턴을 찾기 위해 그 위에 반복하고있다. 패턴을 얻을 때 원하는대로 서식을 지정할 수 있습니다.

관련 문제