2016-10-07 1 views
1

나는 txt 파일을 읽을 수있는 python 스크립트를 작성하려고하지만 readline()에는 항상 \ n 출력이 있습니다. 변수에서 이것을 어떻게 제거 할 수 있습니까?a = open ("file", "r"); a.readline() 출력없이 n

a = open("file", "r") 
b = a.readline() 
a.close() 
+0

문자열의 마지막 요소를 제거하십시오 ... – Psytho

답변

-1

과 같이 문자열의 읽기에서 마지막 문자, 즉 '\ n을'을 제거하면 모든 라인에 제거하려는 경우

b = b[:-1] 
+0

무엇에 대해 \ r \ n? – Sergey

+0

OP는 그가 OP를 가지고 있다고 말하지 않았습니다. – Chris

+0

끝에 줄 바꿈 문자가 없더라도 줄의 마지막 문자가 제거됩니다. I.E 마지막 줄 –

4

b.rstrip('\n') 

을 것이라고 줄을 고려해 볼 수도 있습니다.

a.read().splitlines() 

줄 끝 문자가없는 줄 목록을 제공합니다.

2

해결책이 될 수 있습니다 :

with open("file", "r") as fd: 
    lines = fd.read().splitlines() 

당신은 "\ r에 \ n을"또는 "\ n"없이 라인의 목록을 가져옵니다.

with open("file", "r") as fd: 
    for line in fd: 
     line = line.strip() 

당신은 라인으로 파일 라인을 읽고 공백과 줄 바꿈으로 드롭 :

하거나, 고전적인 방법을 사용합니다.

경우에만 개행 문자를 삭제하려면

:

with open("file", "r") as fd: 
    for line in fd: 
     line = line.replace("\r", "").replace("\n", "") 

잇함으로써 해결할 수.

참고 : Python 3의 동작은 약간 다릅니다. 이 동작을 모방하려면 io.open을 사용하십시오.

io.open의 설명서를 참조하십시오.

그래서, 당신은 사용할 수 있습니다

with io.open("file", "r", newline=None) as fd: 
    for line in fd: 
     line = line.replace("\n", "") 

줄 바꿈 매개 변수 인 경우 None : 입력의 행은 '\ n을'에 끝낼 수 '\ R', 또는 '\ 연구 \ n'을 , 이것들은 '\ n'로 번역됩니다. 보편적 인 뉴 라인의 작품 (단지 텍스트 모드 적용) 방법

줄 바꿈 제어합니다. 없음, '', '\ n', '\ r'및 '\ r \ n'일 수 있습니다.

입력시 개행이 없음이면 유니버설 개행 모드가 사용됩니다. 입력의 행은 '\ n', '\ r'또는 '\ r \ n'로 끝날 수 있으며 호출자에게 반환되기 전에 '\ n'으로 변환됩니다. ''인 경우 유니버설 개행 모드가 사용 가능하지만 행 끝은 번역되지 않은 호출자에게 리턴됩니다. 다른 유효한 값이 있으면 입력 행은 주어진 문자열로만 끝나며 줄 끝은 변환되지 않은 호출자에게 리턴됩니다.