Nếu bạn muốn kịch bản của bạn trở giá trị, chỉ cần làm return [1,2,3]
từ một hàm gói mã của bạn nhưng sau đó bạn sẽ phải nhập khẩu kịch bản của bạn từ kịch bản khác để thậm chí có sử dụng bất kỳ thông tin rằng:
giá trị trả về (từ một gói chức năng)
(một lần nữa, điều này sẽ phải được điều hành bởi một kịch bản Python riêng biệt và được nhập khẩu để thậm chí làm bất kỳ tốt):
import ...
def main():
# calculate stuff
return [1,2,3]
Mã thoát là chỉ số
(Điều này thường chỉ tốt khi bạn muốn cho biết thống đốc điều gì đã xảy ra hoặc chỉ đơn giản là số lượng lỗi/hàng được tính hoặc w/e. Thông thường 0 là một lối ra tốt và> = 1 là một lối xấu nhưng bạn có thể liên làm mất thì giờ chúng trong bất kỳ cách nào bạn muốn lấy dữ liệu ra khỏi nó)
import sys
# calculate and stuff
sys.exit(100)
Và lối ra với một mã thoát cụ thể tùy thuộc vào những gì bạn muốn nói với thống đốc của bạn. Tôi đã sử dụng mã thoát khi chạy tập lệnh bằng môi trường lập lịch và theo dõi để cho biết điều gì đã xảy ra.
stdout như tiếp sức của bạn
Nếu không bạn sẽ phải sử dụng stdout để giao tiếp với thế giới bên ngoài (như bạn đã mô tả). Nhưng đó thường là một ý tưởng tồi trừ khi đó là một trình phân tích cú pháp thực thi tập lệnh của bạn và có thể nắm bắt bất kỳ điều gì bạn đang báo cáo.
import sys
# calculate stuff
sys.stdout.write('Bugs: 5|Other: 10\n')
sys.stdout.flush()
sys.exit(0)
Bạn có đang chạy tập lệnh trong môi trường lập lịch được kiểm soát không, sau đó thoát mã là cách tốt nhất để thực hiện.
Các tệp làm băng chuyền
Ngoài ra còn có tùy chọn viết thông tin đơn giản vào một tệp và lưu trữ kết quả ở đó.
# calculate
with open('finish.txt', 'wb') as fh:
fh.write(str(5)+'\n')
Và nhận giá trị/kết quả từ đó.Bạn thậm chí có thể làm điều đó trong một định dạng CSV cho người khác để đọc đơn giản.
Nói chung, một ý tưởng tồi là cố gắng sử dụng giá trị trả lại của tệp thực thi để trả về bất kỳ điều gì ngoài mã lỗi hoặc 0 để thành công. Bạn sẽ làm gì với giá trị này khi nó được trả về? – geoffspear
Không biết về cửa sổ, nhưng trong linux, nó là phổ biến cho các chương trình để xuất kết quả để stdout. Nó có vẻ như bình thường kịch bản của bạn in một loạt các thông tin, nhưng có lẽ với một lá cờ khác nhau (có thể c cho đếm?), Nó chỉ in tổng số các tập tin, ví dụ myscript.py -c -i input_name1 input_name2 – arghbleargh
@ Wooble, đó là một tập lệnh để tìm lỗi trong các tệp báo cáo. Giá trị cho phép ước tính mức độ hiệu quả của các tệp báo cáo. –