python에서 개행이 들어간 문자열 입력 방법이 궁금합니다.
조회수 10132회
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
댓글 입력