\ n이 포함 된 Python 스트립
이 질문에 이미 답변이 있습니다.
이것은 내 문제입니다.
텍스트 파일을 읽은 다음 줄을 수레로 변환하려고합니다. 텍스트 파일이 \n
및 \t
그것에서 나는 그것을 제거하는 방법을 알고하지 않습니다하지만.
나는 사용해 line.strip()
보았지만 그것을 벗지 않았고 물건을 수레로 변환하고 싶을 때 오류가 발생했습니다. 그런 다음 시도 line.strip("\n")
했지만 작동하지 않았습니다. 내가 밖으로 걸릴 때 내 프로그램은 잘 작동 \t
하고 \n
텍스트 파일에서하지만, 할당의 그것의 일부가 그들과 함께 작업에 그것을 얻을 수 있습니다.
왜 이것이 작동하지 않는지 모르겠습니다. 도움을 주셔서 감사합니다.
line.strip('\n')
및 을 사용할 수 있어야합니다 line.strip('\t')
. 그러나 이것들은 line
변수를 수정하지 않습니다 ... 그냥 \n
및 \t
제거 된 문자열을 반환합니다 . 따라서 다음과 같은 작업을 수행해야합니다.
line = line.strip('\n')
line = line.strip('\t')
시작과 끝에서 제거하는 데 효과적입니다. 당신이있는 경우 \n
와 \t
문자열의 중간에, 당신은 할 필요가
line = line.replace('\n','')
line = line.replace('\t','')
바꾸기하기 \n
와 \t
무 (無)로합니다.
이 strip()
메서드는 기본적으로 공백을 제거하므로 '\ t'또는 '\ n'과 같은 매개 변수로 공백을 호출 할 필요가 없습니다. 그러나 Python의 문자열은 변경 불가능하며 수정할 수 없습니다. 즉, line.strip()
호출이 line
객체를 변경하지 않습니다 . 결과는 호출에 의해 반환되는 새 문자열입니다.
이미 언급했듯이 입력 파일에서 예제를 게시하면 도움이 될 것입니다. 각 줄에 숫자가 두 개 이상 있으면 strip()
사용할 기능이 아닙니다. 대신 split()
문자열 메서드 인 을 사용해야합니다 .
결론을 내리기 위해 각 줄에 공백으로 구분 된 여러 부동 소수점이 포함되어 있고 모든 숫자 목록을 작성하려는 경우 다음을 시도 할 수 있습니다.
floats = []
with open(filename) as f:
for line in f:
floats.extend([float(number) for number in line.split()])
파이썬 정규식 패턴을 사용하는 것은 어떻습니까?
import re
f = open('test.txt', 'r')
strings = re.findall(r"\S+", f.read())
그리고 귀하의 경우 line.strip () 은 Python이 선행 및 후행 문자 만 제거하기 때문에 작동하지 않습니다.
에서 파이썬 문서 가 반환되는 문자열의 사본 - 선도적 인 제거 문자를 후행 . chars가 생략되거나 None이면 공백 문자가 제거됩니다. None이 아니라 주어지면 문자는 문자열이어야합니다. 문자열의 문자는이 메서드가 호출되는 문자열의 양쪽 끝에서 제거됩니다.
당신이 사용할 수있는:
mylist = []
# Assuming that you have loaded data into a lines variable.
for line in lines:
mylist.append(line.strip().split('\t')
모든 데이터 라인에 대한 필드 값만있는 파이썬 목록을 가져옵니다.
pythons csv 라이브러리는 이것에 좋습니다.
http://docs.python.org/library/csv.html
CSV = 쉼표로 구분 된 값이지만 구분 기호 = \ t를 설정하면 탭으로 구분 된 값에서도 작동합니다.
종종 라인을 읽는 방법에 따라 myline에서 \ n을 제거하기 위해 myline [:-1]을 사용할 수 있습니다. \ n은 myline의 마지막 문자이기 때문입니다.
'\ t'의 경우 replace () 또는 strip ()을 사용할 수 있습니다.
If you're trying to convert lines of floats separated by tab characters, then just float(line)
will try to convert the whole line into one float, which will fail if there's more than one. Using strip
to get rid of leading and trailing whitespace isn't going to help that fundamental problem.
Maybe you need to split
each line into pieces and do something with each piece?
참고URL : https://stackoverflow.com/questions/9347419/python-strip-with-n
'Program Tip' 카테고리의 다른 글
Python의 string.replace 대 re.sub 사용 (0) | 2020.12.14 |
---|---|
Visual Studio에서 KeyDown 이벤트, KeyPress 이벤트 및 KeyUp 이벤트의 차이점 (0) | 2020.12.14 |
Rails에서 오류없이 파일을 삭제하는 방법 (0) | 2020.12.14 |
IIS 용 PHP 관리자가 설치되지 않음 (0) | 2020.12.14 |
자바에서 더블 라운드 (0) | 2020.12.14 |