기본적으로 사용자에게 콘솔에 텍스트 문자열을 입력하도록 요청하고 있지만 문자열이 매우 길고 줄 바꿈이 많이 포함되어 있습니다. 사용자의 문자열을 가져와 모든 줄 바꿈을 삭제하여 한 줄의 텍스트로 만들려면 어떻게 해야 하나요? 문자열을 가져오는 제 방법은 매우 간단합니다.
string = raw_input("Please enter string: ")
사용자로부터 문자열을 가져오는 다른 방법이 있나요? Mac에서 Python 2.7.4를 실행하고 있습니다.
추신: 저는 분명히 초보자이므로 가장 효율적인 솔루션이 아니더라도 가장 간단한 구문을 사용하는 솔루션이 있으면 감사하겠습니다.
RAW_INPUT`으로 줄 바꿈은 어떻게 입력하나요? 그러나 제거하려는 문자가 포함된 문자열이 있으면 해당 문자를 '바꾸기'하면 됩니다.
>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>
위의 예에서는 모든 공백을 대체했습니다. 문자열 '\n'
은 개행을 나타냅니다. 그리고 \r
은 캐리지 리턴을 나타냅니다(윈도우를 사용하는 경우, 이 문자열이 표시될 수 있으며 두 번째 대체
가 이를 처리합니다!).
기본적으로:
# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')
또한 변수를 '문자열'이라고 부르는 것은 모듈 '문자열'을 가리기 때문에 좋지 않다는 점에 유의하세요. 피하고 싶지만 가끔 사용하고 싶은 또 다른 이름입니다: 파일`. 같은 이유에서입니다.
문자열 바꾸기를 사용해 볼 수 있습니다:
string = string.replace('\r', '').replace('\n', '')
문자열 연속 공백 없이 치료할 수 있습니다, 이를 하나로 분할합니다 seperator arg seperator (줄 바꿈 및 탭들 등). 그럼 bigadmin 사용하여 공간:
In : " ".join("\n\nsome text \r\n with multiple whitespace".split())
Out: 'some text with multiple whitespace'
메서드입니다 고려하여
과도한 걸리는 등 여러 줄 수 있는 문자열 (예:
test_str = '\nhej ho \n aaa\r\n a\n '
좋은 한 문자열이어야 생산하고 있는
>>> ' '.join([line.strip() for line in test_str.strip().splitlines()])
'hej ho aaa a'
업데이트: 문자 다중 해결하십시오 새로운 라인 생산 예비형 공백: "' & # 39. & # 39, 스타인 ([선.스트리프 () 선 () 의 경우 선.스트리프 test_str.strip 오스플리틀린스 () ()]) "' 이 방법은 다음 너무 "'test_str = & # 39, & # 39 호 \n \nhej aaa\r\n\n\n\n\n a\n."