python에서 개행이 들어간 문자열 입력 방법이 궁금합니다.

조회수 10081회

python에서 raw_input()을 통해 문자열 입력을 받고자 합니다. 다만 입력받는 문자열이 여러개의 개행이 들어가있습니다.

예를 들자면 아래와 같습니다.

string = raw_input("hex code : ")

입력 문자열


01 | string1

02 | string 2

03 | string 3

...

25 | string25


이런식입니다.

여기서 출력을 하게 되면 디버깅을 해봐도 string에는 00|string1이라는 문자열만 있을 뿐입니다.

제가 예상하기로는 00|string1\n01|string2 ... 이런식인데말이죠..

그래서 개행문자를 지우는 방법등이 안먹힙니다.

나름대로 찾아낸 방법 중 하나는 여러번의 raw_input()을 쓰는 방법입니다. 다만 이것도 몇 줄짜리를 입력받을지를 모르니 쓰기가 애매하구요.

string1 = raw_input()
string2 = raw_input()
string3 = raw_input()
...
string25 = raw_input()

이런 방법을 쓰면 각 string변수에 문자열이 한 줄 한 줄 입력되어있긴합니다. 하지만 앞서 말했듯이 몇 줄짜리가 입력될지를 모르므로 쓰기가 애매합니다.

입력 받을때 개행을 지울 수 있는 특별한 방법이 있을까요?

제가 생각하는 가장 이상적인 방법은 각 리스트별로 문자열 한줄씩 입력되는 방법입니다만.. 꼭 이 방법이 아니어도 됩니다.(string[0] = 01|string1, string[1] = 02|string2 ....)


import sys
string = sys.stdin.readlines()

위의 방법으로 받으면 '\n'까지를 다 표시해주니 입력을 받을 수 있긴합니다만.. 입력의 종료를 엔터가 아닌 Ctrl+d를 눌러야한다는 점 때문에 좀 꺼려집니다..

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • raw_input은 한 줄만 읽어들일 수 있습니다.

    반복문으로 여러줄을 받으면 되겠네요. 아무것도 입력하지 않고 엔터를 치면 입력이 종료됩니다.

    string = []
    
    while True:
        input_str = raw_input(">")
        if input_str == "":
            break
        else:
            string.append(input_str)
    
    for line in string:
        print line
    
    • 하....어떻게 보면 간단한 방법인데 생각지도 못하던 방법입니다. 사고의 틀이 넓어지는 느낌이네요. 답변 감사합니다! 알 수 없는 사용자 2016.6.18 03:37

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)