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


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를 눌러야한다는 점 때문에 좀 꺼려집니다..

  • 2016년 06월 17일에 작성됨
    보안 분야 업무를 하고있으며, python개발을 주로 합니다.

조회수 258


1 답변


좋아요
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년 06월 18일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 하....어떻게 보면 간단한 방법인데 생각지도 못하던 방법입니다. 사고의 틀이 넓어지는 느낌이네요. 답변 감사합니다!    pypi   2016.6.18 03:37     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close