[PYTHON] 파이썬 스트립 \ n [중복]
PYTHON파이썬 스트립 \ n [중복]
이것은 내 문제입니다.
텍스트 파일을 읽은 다음 줄을 수레로 변환하려고합니다. 텍스트 파일은 \ n과 \ t를 가지고 있지만 제거 방법은 모르겠습니다.
line.strip ()을 사용하여 시도했지만 꺼내지 않았고 물건을 수레로 변환하려고 할 때 오류가 발생했습니다. 나는 그 다음에 line.strip ( "\ n")을 시도했지만 그 역시 작동하지 않았다. 내 프로그램은 텍스트 파일에서 \ t 및 \ n을 꺼낼 때 잘 작동하지만 할당과 함께 작동하도록하려면 할당의 일부입니다.
왜 이것이 작동하지 않는지 나는 정말로 모른다. 어떤 도움을 주셔서 감사합니다.
해결법
-
==============================
1.line.strip ( '\ n')과 line.strip ( '\ t')을 사용할 수 있어야합니다. 그러나 이것들은 라인 변수를 수정하지 않습니다. 단지 \ n과 \ t를 제거한 문자열을 반환합니다. 그래서 당신은 뭔가를해야 할 것입니다.
line.strip ( '\ n')과 line.strip ( '\ t')을 사용할 수 있어야합니다. 그러나 이것들은 라인 변수를 수정하지 않습니다. 단지 \ n과 \ t를 제거한 문자열을 반환합니다. 그래서 당신은 뭔가를해야 할 것입니다.
line = line.strip('\n') line = line.strip('\t')
그것은 시작과 끝에서 제거를 위해 작동해야합니다. 문자열의 중간에 \ n 및 \ t이 있으면 수행해야합니다.
line = line.replace('\n','') line = line.replace('\t','')
\ n과 \ t를 무의미한 것으로 바꿉니다.
-
==============================
2.strip () 메서드는 기본적으로 공백을 제거하므로 '\ t'또는 '\ n'과 같은 매개 변수를 사용하여 호출 할 필요가 없습니다. 그러나 파이썬의 문자열은 변경할 수 없으며 수정할 수 없습니다. 즉, line.strip () 호출은 라인 객체를 변경하지 않습니다. 결과는 호출에 의해 리턴 된 새로운 문자열입니다.
strip () 메서드는 기본적으로 공백을 제거하므로 '\ t'또는 '\ n'과 같은 매개 변수를 사용하여 호출 할 필요가 없습니다. 그러나 파이썬의 문자열은 변경할 수 없으며 수정할 수 없습니다. 즉, line.strip () 호출은 라인 객체를 변경하지 않습니다. 결과는 호출에 의해 리턴 된 새로운 문자열입니다.
이미 언급했듯이 입력 파일에서 예제를 게시하면 도움이됩니다. 각 줄에 둘 이상의 숫자가 있으면 strip ()이 사용할 함수가 아닙니다. 대신 문자열 메소드 인 split ()을 사용해야합니다.
결론적으로, 각 행에 공백으로 구분 된 여러 개의 부동 소수점이 들어 있고 모든 숫자의 목록을 작성한다고 가정하면 다음을 시도 할 수 있습니다.
floats = [] with open(filename) as f: for line in f: floats.extend([float(number) for number in line.split()])
-
==============================
3.파이썬 정규식 패턴을 사용하는 것은 어떻습니까?
파이썬 정규식 패턴을 사용하는 것은 어떻습니까?
import re f = open('test.txt', 'r') strings = re.findall(r"\S+", f.read())
그리고 파이썬은 선행 문자와 후행 문자 만 제거하기 때문에 line.strip () 함수가 작동하지 않습니다.
-
==============================
4.파이썬 CSV 라이브러리는 이것에 좋다.
파이썬 CSV 라이브러리는 이것에 좋다.
http://docs.python.org/library/csv.html
CSV = 쉼표로 구분 된 값이지만 구분 기호 = \ t를 설정하면 탭 구분 값에 대해서도 작동합니다.
-
==============================
5.탭 문자로 구분 된 플로트 라인을 변환하려는 경우, float (line)은 전체 라인을 하나의 부동 소수점으로 변환하려고 시도하며, 둘 이상의 플로트가있는 경우 실패합니다. 스트립을 사용하여 선행 및 후행 공백을 없애는 것은 근본적인 문제를 해결하는 데 도움이되지 않습니다.
탭 문자로 구분 된 플로트 라인을 변환하려는 경우, float (line)은 전체 라인을 하나의 부동 소수점으로 변환하려고 시도하며, 둘 이상의 플로트가있는 경우 실패합니다. 스트립을 사용하여 선행 및 후행 공백을 없애는 것은 근본적인 문제를 해결하는 데 도움이되지 않습니다.
어쩌면 각 줄을 조각으로 나눠서 조각 하나 하나에 뭔가를 할 필요가 있을까요?
-
==============================
6.종종 라인을 읽는 방법에 따라 myline에서 \ n을 없애기 위해, 당신은 myline [: - 1]을 (를) \ n이 myline의 마지막 문자이기 때문입니다.
종종 라인을 읽는 방법에 따라 myline에서 \ n을 없애기 위해, 당신은 myline [: - 1]을 (를) \ n이 myline의 마지막 문자이기 때문입니다.
'\ t'의 경우 replace () 또는 strip ()을 사용할 수 있습니다.
-
==============================
7.당신이 사용할 수있는:
당신이 사용할 수있는:
mylist = [] # Assuming that you have loaded data into a lines variable. for line in lines: mylist.append(line.strip().split('\t')
모든 데이터 행에 대한 필드 값만있는 파이썬 목록을 가져옵니다.
from https://stackoverflow.com/questions/9347419/python-strip-with-n by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 중첩 목록의 두 번째 열에서 최대 값 찾기? (0) | 2018.11.05 |
---|---|
[PYTHON] 공백으로 구분 된 값으로 파일을 읽는 방법 (0) | 2018.11.05 |
[PYTHON] Python의 isinstance ()를 사용하여 변수가 숫자인지 제대로 확인하는 방법은 무엇입니까? (0) | 2018.11.04 |
[PYTHON] 파이썬에서 튜플 목록을 어떻게 열거 할 수 있습니까? (0) | 2018.11.04 |
[PYTHON] Python range () 및 zip () 객체 유형 (0) | 2018.11.04 |