Hướng dẫn how do i save a workspace in python? - làm cách nào để lưu không gian làm việc trong python?
Nếu bạn muốn câu trả lời được chấp nhận được trừu tượng hóa để hoạt động, bạn có thể sử dụng:
Để nhận/tải không gian làm việc:
Nó hoạt động khi tôi chạy nó. Tôi sẽ thừa nhận tôi không hiểu Sau một số nghiên cứu nữa nếu bạn gọi 0. Điều này xảy ra bởi vì Globals lấy toàn cầu từ mô -đun nơi hàm được xác định, không phải từ nơi được gọi là dự đoán của tôi. … Nhiều nghiên cứu sinh-datascientist, nếu tình cờ vượt qua 1 trên đường, có thể bỏ lỡ một tính năng tiện dụng ở đó để tiết kiệm không gian làm việc. Bạn đã thực hiện một số phân tích, có một loạt các kết quả trung gian mà bạn muốn sao lưu tạm thời để sử dụng lại sau này mà không cần chạy lại toàn bộ phân tích từ đầu. Trong 1, nó đơn giản như 3. Làm thế nào chúng ta sẽ làm điều đó trong 4?Có gì trên bàn?Chúng ta có gì trong không gian làm việc Python bình thường của mình? Hãy để kiểm tra nhanh với Ở đây, chúng tôi đã tìm thấy hai biến 6 mà chúng tôi vừa tạo, ngoài các thuộc tính được tích hợp mặc định khác.Chúng ta có thể lấy lại các giá trị của các biến đó bằng cách sử dụng Bây giờ chúng tôi có thể tự động nhận được tên và giá trị của tất cả các biến trong phiên Python của chúng tôi. Chúng ta có thể dễ dàng sao lưu những người bằng cách sử dụng mô -đun tiêu chuẩn. Chỉ cần là đồ rằng không phải tất cả mọi thứ là dưa chua. Một ví dụ đơn giản có thể là hàm 9.Không phải mọi thứ đều có thể được ngâmDanh sách rộng hơn của các đối tượng có thể chọn có thể được tìm thấy ở đây. Để tránh lỗi khi sao lưu, chúng ta có thể lọc các đối tượng không thể sử dụng def is_picklable(obj): 0.def is_picklable(obj): Check nếu đối tượng có thể chọn đượcLàm thế nào để sao lưu này?Đặt tất cả lại với nhau, đây là một số giải pháp đơn giản. Giải pháp đầu tiên là với mô -đun tiêu chuẩn def is_picklable(obj): 1 :Chúng tôi sẽ liệt kê tất cả các đối tượng trên mạng trong phiên hiện tại bằng def is_picklable(obj): 4 tạm thời được sử dụng để thu thập tất cả các đối tượng và sau đó 8 được sử dụng để tuần tự hóa def is_picklable(obj): 4 thành một tệp.import pickle Giải pháp thứ hai đi với gói def is_picklable(obj): 7 package:Theo cách tiếp cận tương tự, chúng ta có thể sử dụng mô -đun tiêu chuẩn ____28 để lưu và sau đó khôi phục các đối tượng có thể lấy được trong phiên Python. Như đằng sau hậu trường, def is_picklable(obj): 8 sử dụng 8 để tuần tự hóa và giảm giá cấu trúc dữ liệu, logic của chúng tôi sẽ rất giống nhau. Ngoài ra, chỉ các đối tượng có thể lấy được mới có thể được lưu và khôi phục bằng def is_picklable(obj): 8.import shelvebk = shelve.open('./your_bk_shelve.pkl','n') Sự khác biệt cơ bản giữa phương pháp dựa trên 8 và def is_picklable(obj): 8 nằm ở bản chất của đối tượng tạm thời của chúng ta. Trong giải pháp đầu tiên, def is_picklable(obj): 4 là một từ điển thực sự chứa một bản sao của tất cả các đối tượng được lưu. Do đó, khi chúng tôi kiểm tra kích thước của đối tượng def is_picklable(obj): 4 trong hai giải pháp def is_picklable(obj): 4 kích thước sẽ là tổng của tất cả các đối tượng được lưu, và do đó lớn hơn kích thước của mỗi đối tượng.Kích thước của `bk` là bộ sưu tập của tất cả các đối tượng được lưu, do đó kích thước lớn hơn.Trong giải pháp thứ hai này, def is_picklable(obj): 4 chỉ là một tham chiếu đến import pickle 9. Thật vậy, def is_picklable(obj): 8 đóng vai trò là giao diện cho cơ sở dữ liệu import shelvebk = shelve.open('./your_bk_shelve.pkl','n')1 cơ bản. Kích thước của import shelvebk = shelve.open('./your_bk_shelve.pkl','n')2in trường hợp này nhỏ hơn nhiều ở sau này.Kích thước của `bk` với cách tiếp cận` kệ` nhỏ hơn nhiều Do đó, có ít nhất hai lợi thế trong việc sử dụng def is_picklable(obj): 8:
Giải pháp thứ ba là với import shelvebk = shelve.open('./your_bk_shelve.pkl','n')4 . Như đã đề cập ở trên, có những đối tượng mà chúng ta sẽ không thể dồn, ví dụ, chức năng Lambda. Chúng ta có thể sử dụng giải pháp của bên thứ ba với mô -đun import shelvebk = shelve.open('./your_bk_shelve.pkl','n')5. Nó cho phép tuần tự hóa nhiều loại đối tượng hơn. Và trong trường hợp thất bại, nó cung cấp các chức năng, ví dụ: import shelvebk = shelve.open('./your_bk_shelve.pkl','n')6 để điều tra các thuộc tính thất bại bên trong đối tượng đó. import dill Chúng tôi có thể xác minh điều này bằng cách kiểm tra tổng số đối tượng được khôi phục từ một phiên đã lưu bằng cách sử dụng def is_picklable(obj): 8 (hoặc 8) và import shelvebk = shelve.open('./your_bk_shelve.pkl','n')5.Chỉ có 7 đối tượng được ngâm và do đó được khôi phục bằng cách sử dụng `kệ` (hoặc` dưa chua), có nhiều đối tượng có thể được lưu và do đó được khôi phục bằng cách sử dụng `Dill`. Đây là một ví dụ đơn giản để hiển thị nguyên tắc. Vui lòng kiểm tra cho chính mình. Mã hoàn chỉnh có thể được tìm thấy trong github của tôi. Ghi chú cuối cùngCó hai điều không được thảo luận ở đây nhưng sẽ rất quan trọng để biết:
Cảm ơn nhiều vì đã đọc. Nếu bạn có bất kỳ giải pháp hoặc nhận xét thay thế nào cho các cách tiếp cận tốt hơn, vui lòng để lại nhận xét. References: [1] Lưu bằng Pickle (bài viết gốc của tôi). [2] Tiết kiệm với thì là hoặc kệ. |