2012-04-19 12 views
6

Tôi đang sử dụng raw_input() để lưu trữ thư trong một biến. Vì vậy, tôi không thể nhấn enter để trở về vận chuyển/dòng mới để bắt đầu một đoạn mới. Ngay bây giờ nếu tôi nhấn enter nó sẽ chỉ tiến tới phần tiếp theo của chương trình của tôi.Làm thế nào để bao gồm một dòng mới trong hàm raw_input() python?

Tôi đã thử một cái gì đó như thế này:

>>> message = raw_input("Message: ") 
Message: Hello Sir, \n It's great that.. 
>>> message 
"Hello Sir, \\n It's great that.." 
>>> 

Nó không làm việc, và tôi cũng đã cố gắng bao quanh nó trong đơn và đôi dấu ngoặc kép, mà cũng không làm việc.

Tôi hiểu rằng có những cách khác để làm điều này, như sử dụng wxPython hoặc Tkinter, nhưng tôi muốn giữ nó chặt chẽ console. Điều này có thể không?

Trả lời

7

Bạn có thể sử dụng mô-đun sys không? Điều này sẽ làm các trick nếu bạn muốn. Chỉ cần nhấn Ctrl-D để kết thúc nó.

import sys 
message = sys.stdin.readlines() 

Nếu không, đây trả lời câu hỏi của bạn: Python raw_input ignore newline

+0

sys.stdin.readlines() hoạt động như một nét duyên dáng, nhưng tôi dường như không thể có được ctrl-d để làm việc tôi không biết tại sao? – coffeeNcode

+0

tôi đã tìm ra nó, tôi phải sử dụng ctrl-c thay vào đó, nhưng bây giờ tôi nhận được một lỗi ngắt bàn phím nếu tôi đã cố gắng để in tin nhắn. – coffeeNcode

+1

Tôi đã tìm ra nó cuối cùng! Tôi không thể sử dụng ctrl-c, đó là những gì làm cho lỗi ngắt bàn phím và tôi không thể sử dụng ctrl-d vì tôi đang sử dụng windows, tôi phải sử dụng ctrl-z hoặc f6 và sau đó nó sẽ hiển thị trong bảng điều khiển như thế này^Z và nhấn enter. sau đó tôi phải chuyển đổi tin nhắn từ một danh sách trở lại thành một chuỗi, mà tôi quản lý để làm như thế này >>> roughmessage = sys.stdin.readlines() >>> message = '' .join (roughmessage) – coffeeNcode

Các vấn đề liên quan