(Tôi nghĩ) Tôi biết cách đọc từ một đường ống. Ý tôi là các cuộc gọi trên bash như thế nàyTìm hiểu xem có đầu vào từ một đường ống hay không trong Python?
echo Bähm | ./script.py
này Python3 kịch bản làm việc với điều đó.
#!/usr/bin/env python3
import sys
x = sys.stdin.read()
if x:
print(x)
else:
print('no pipe')
sys.exit()
Nhưng khi tôi chỉ đơn giản là làm điều này trên bash
./script.py
có gì xảy ra bởi vì nó chờ đợi cho đầu vào.
Vì vậy, tôi muốn kiểm tra (khi bắt đầu tập lệnh) nếu có đầu vào từ đường ống hay không. Nhưng tôi không biết tại sao size
hoặc len
không hoạt động trên sys.stdin
hoặc sys.stdin.buffer
.
Có thể có sự khác biệt trong việc xử lý giữa phiên bản 2 và 3 của Python?
Đây có phải là Python-3.x cụ thể không? Tôi sẽ đưa vào chỉnh sửa thẻ để được chấp thuận hoặc bị từ chối. –
Tôi không biết gì về Python2. Ví dụ của tôi là Python3.Và thường có sự khác biệt có liên quan giữa chúng. Đó là lý do tại sao tôi cố gắng làm cho câu hỏi của mình càng cụ thể càng tốt. Và rất nhiều câu hỏi Python trên SO trộn lẫn mọi thứ giữa 2 và 3 và gây nhầm lẫn cho người đọc. – buhtz