Chạy lệnh định kỳ và lưu đầu ra vào tệp CSV


0

Tôi đang chạy một số lệnh trong trình giả lập SDN. Lệnh là:

$ py ap1.params['frequency']

Nó cho tôi một đầu ra giá trị (float). Làm cách nào tôi có thể viết một tập lệnh python nhỏ hoặc sử dụng một lệnh duy nhất để chạy lệnh trên sau mỗi 2 giây và nối từng đầu ra vào tệp csv.

Câu trả lời:


0

Tuyên bố miễn trừ trách nhiệm: Tôi không biết gì về trăn, tôi chỉ kết hợp những gì được nói trong các nguồn dưới đây. Tôi không thể kiểm tra nó và có một sự thay đổi rằng điều này là vô cùng sai lầm.

  1. Viết một vòng lặp while bằng lệnh ngủ thường gọi lệnh của bạn: source

    import time; while True: ap1.params['frequency']; time.sleep(2)

    Thực tế, điều này sẽ không gọi lệnh sau mỗi hai giây mà phải đợi hai giây giữa mỗi lần chạy - bạn có thể muốn điều chỉnh thời gian ngủ.

  2. Chạy vòng lặp và chuyển hướng đầu ra đến một tệp nối thêm nó: nguồn

    py 'import time; while True: ap1.params['frequency']; time.sleep(2)' >> output.csv

    Có nhiều cách khác để chuyển hướng đầu ra, tất nhiên bản thân python cũng hoàn toàn có khả năng thực hiện điều này - xem nguồn cho các phương pháp thay thế.


0

Bạn có thể (loại mis-) sử dụng watchlệnh:

watch -n 2 -p "( py ap1.params[\'frequency\'] >>output.csv )"

Bạn sẽ không thấy nhiều trên màn hình mà đồng hồ sẽ hiển thị ngoại trừ thời gian thay đổi, vì sản lượng thực tế được chuyển hướng. Lưu ý lệnh được đưa ra để xem bao gồm cả chuyển hướng cần phải được nhóm trong ngoặc đơn. Ngoài ra, có hoặc không có đồng hồ , có lẽ các dấu ngoặc đơn trong lệnh ( 'frequency') nên được thoát bằng \ để chúng không bị tước bởi vỏ.

Xem man watchđể biết thêm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.