Mã hiện tại của tôi đọc đầu vào người dùng cho đến khi dòng phá vỡ. Nhưng tôi đang cố gắng thay đổi nó thành một định dạng, trong đó người dùng có thể viết đầu vào cho đến khi strg+d để kết thúc đầu vào của mình.
Tôi hiện đang làm như thế này:
input = raw_input ["Input: "]
Nhưng làm thế nào tôi có thể thay đổi nó thành một phiên bản sẵn sàng EOF?
Hỏi ngày 20 tháng 1 năm 2014 lúc 13:53Jan 20, 2014 at 13:53
Trong Python 3 bạn có thể lặp lại các dòng đầu vào tiêu chuẩn, vòng lặp sẽ dừng khi đạt được EOF:
from sys import stdin
for line in stdin:
print[line, end='']
from sys import stdin
for line in stdin:
print[line, end='']
1 bao gồm nhân vật from sys import stdin
for line in stdin:
print[line, end='']
2 theo dõiChạy ví dụ này trực tuyến: //ideone.com/ruxcie
Đây có thể là điều mà hầu hết mọi người đang tìm kiếm, tuy nhiên nếu bạn muốn đọc toàn bộ đầu vào cho đến khi EOF thành một biến duy nhất [như OP], thì bạn có thể muốn xem câu trả lời khác này.
Đã trả lời ngày 26 tháng 3 năm 2016 lúc 15:33Mar 26, 2016 at 15:33
Arekolekarekolekarekolek
8,5443 huy hiệu vàng57 Huy hiệu bạc76 Huy hiệu đồng3 gold badges57 silver badges76 bronze badges
0
Sử dụng
from sys import stdin
for line in stdin:
print[line, end='']
3:input_str = sys.stdin.read[]
Theo tài liệu:
4from sys import stdin for line in stdin: print[line, end='']
Đọc ở hầu hết các byte có kích thước từ tệp [ít hơn nếu đọc truy cập EOF trước khi có được kích thước byte]. Nếu đối số kích thước là âm hoặc bị bỏ qua, hãy đọc tất cả dữ liệu cho đến khi đạt được EOF.
>>> import sys
>>> isinstance[sys.stdin, file]
True
Btw, không sử dụng
from sys import stdin
for line in stdin:
print[line, end='']
5 như một tên biến. Nó Shadows Chức năng tích hợp from sys import stdin
for line in stdin:
print[line, end='']
5.Đã trả lời ngày 20 tháng 1 năm 2014 lúc 13:56Jan 20, 2014 at 13:56
Falsetrufalsetrufalsetru
345K59 Huy hiệu vàng690 Huy hiệu bạc613 Huy hiệu Đồng59 gold badges690 silver badges613 bronze badges
Bạn cũng có thể làm như sau:
acc = []
out = ''
while True:
try:
acc.append[raw_input['> ']] # Or whatever prompt you prefer to use.
except EOFError:
out = '\n'.join[acc]
break
Đã trả lời ngày 20 tháng 1 năm 2014 lúc 14:02Jan 20, 2014 at 14:02
Joel Cornettjoel CornettJoel Cornett
23,5K9 Huy hiệu vàng61 Huy hiệu bạc85 Huy hiệu Đồng9 gold badges61 silver badges85 bronze badges
1
Với
from sys import stdin
for line in stdin:
print[line, end='']
7 bạn có thể viết như thế này:import sys
while True:
input_ = sys.stdin.readline[]
if input_ == '':
break
print type[input_]
sys.stdout.write[input_]
Hãy nhớ rằng, bất kể đầu vào của bạn là gì, nó là một chuỗi.
Đối với phiên bản
from sys import stdin
for line in stdin:
print[line, end='']
8 hoặc from sys import stdin
for line in stdin:
print[line, end='']
5, hãy viết như thế này:while True:
try:
input_ = input["Enter:\t"]
#or
_input = raw_input["Enter:\t"]
except EOFError:
break
print type[input_]
print type[_input]
print input_
print _input
Đã trả lời ngày 7 tháng 11 năm 2015 lúc 9:49Nov 7, 2015 at 9:49
Pet bpet bPet B
Huy hiệu Bạc 9911 silver badge1 bronze badge
Đọc đầu vào của người dùng cho đến khi EOF trong Python #
Sử dụng phương thức
0 để đọc đầu vào của người dùng cho đến khi EOF. Phương thức input_str = sys.stdin.read[]
1 sẽ trả về một danh sách chứa các dòng. Người dùng có thể nhấn input_str = sys.stdin.read[]
2 [UNIX] hoặc input_str = sys.stdin.read[]
3 [Windows] để thoát.input_str = sys.stdin.read[]
Copied!
import sys # 👇️ User must press Ctrl + D [Unix] or Ctrl + Z [Windows] to exit print['Press CTRL + D [Unix] or CTRL + Z [Windows] to exit'] user_input = sys.stdin.readlines[] # 👇️ get list of lines print[user_input] # 👇️ join the list items into a string print[''.join[user_input]]
input_str = sys.stdin.read[]
4 được sử dụng cho đầu vào người dùng tương tác.Người dùng phải nhấn
2 [trên UNIX] hoặc input_str = sys.stdin.read[]
3 trên Windows để thoát.input_str = sys.stdin.read[]
Phương thức
input_str = sys.stdin.read[]
1 trả về một danh sách chứa danh sách người dùng đã nhập.Bạn có thể sử dụng phương thức
input_str = sys.stdin.read[]
8 nếu bạn cần tham gia danh sách các chuỗi vào một chuỗi.Copied!
# a # b # c print[''.join[['a\n', 'b\n', 'c\n']]]
Nếu bạn chỉ cần một chuỗi chứa các dòng, hãy sử dụng phương thức
input_str = sys.stdin.read[]
9 thay thế.Copied!
import sys user_input = sys.stdin.read[] print[user_input]
Phương thức
input_str = sys.stdin.read[]
9 trả về một chuỗi chứa các dòng người dùng đã nhập.Ngoài ra, bạn có thể sử dụng câu lệnh
>>> import sys
>>> isinstance[sys.stdin, file]
True
1.Để đọc đầu vào của người dùng cho đến khi EOF:
- Sử dụng vòng lặp
2 để lặp lại cho đến khi EOF.>>> import sys >>> isinstance[sys.stdin, file] True
- Trên mỗi lần lặp, nối đầu vào người dùng vào danh sách.
- Bắt ngoại lệ
3 trong khối>>> import sys >>> isinstance[sys.stdin, file] True
4 và thoát ra khỏi vòng lặp.>>> import sys >>> isinstance[sys.stdin, file] True
from sys import stdin
for line in stdin:
print[line, end='']
0Chúng tôi đã sử dụng một vòng
>>> import sys
>>> isinstance[sys.stdin, file]
True
2 để lặp lại cho đến khi EOF.Nếu người dùng nhấn
input_str = sys.stdin.read[]
2 [UNIX] hoặc input_str = sys.stdin.read[]
3 [Windows], ngoại lệ >>> import sys
>>> isinstance[sys.stdin, file]
True
3 được nâng lên và được xử lý trong khối >>> import sys
>>> isinstance[sys.stdin, file]
True
4.Tuyên bố phá vỡ thoát ra khỏi vòng lặp
acc = []
out = ''
while True:
try:
acc.append[raw_input['> ']] # Or whatever prompt you prefer to use.
except EOFError:
out = '\n'.join[acc]
break
0 hoặc >>> import sys
>>> isinstance[sys.stdin, file]
True
2.