2013-04-18 4 views
0

탭으로 구분 된 파일을 읽으려고하지만 필드에 개행 문자가 포함될 수 있으며 개행 문자가있는 필드를 유지하려고합니다. 현재 구현은 각 "\ n"에서 새로운 필드를 만듭니다.(Python) 개행 문자로 구분 된 문자열을 개행 문자로 바꾸기

나는 csv 모듈을 시험해 보았고 "\ t"에서 내가 찾고있는 것에 성공하지 못했습니다. 다음은 주어진 파일의 샘플 라인은 다음과 같습니다

* Field_1 \ t Field_2 \ t Field_3 \ n 추가 텍스트 \ n 더 많은 텍스트 \ T는 Field_4 * 내가 4 개 요소의 목록을 생성하고 싶은

위의 데이터.

* [ "Field_1가", "Field_2", "입력란 3 \ n 추가 텍스트 \ n 더 많은 텍스트", "Field_4"] *

어떤 생각이나 제안이 도움이 될 것입니다.

+4

잠깐, 파일의 새 줄과 내용의 새 줄 사이의 차이점을 어떻게 알 수 있습니까? 아니면 말 그대로 파일에 백 슬래시가 있다고 말하는 것입니까? – wim

+1

필드 3은 인용 부호로 묶여 있습니까? 텍스트 파일에서 데이터 파일을보고 답을 확인하십시오. –

답변

3

이 탭에서 분리하려고 했습니까? 당신이에서 읽고있는 파일의 경로와 fileName 교체

data = 'Field_1 \t Field_2 \t Field_3 \n Additional Text \n More text \t Field_4' 
print data.split('\t') 
+0

간단하고 고마워. – 5k1zk17

1

는 :

inFile = open(fileName, "r") 
rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break) 
data = rawData.split("\t") 
inFile.close() 

또한 파일의 with 문을 사용하여의 (일반적으로 권장) 옵션이 I/O :

with open(fileName, "r") as inFile: 
    rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break) 
    data = rawData.split("\t") 
# you can omit the inFile.close() statement. 

with 문을 사용하면 열린 파일 스트림이 런타임에 표시되는 오류 발생시 자동으로 닫히지 만 파일 어떻게 작동하는지 File I/O를 배우는 사람들에게 분명합니다.

관련 문제