Cách chọn đối tượng trong Python

How Pickle Objects Python



Mọi dữ liệu có thể được tuần tự hóa và giải mã hóa bằng Python bằng cách sử dụng mô-đun JSON và Pickle. Trước khi lưu trữ bất kỳ dữ liệu nào trong một tệp, các đối tượng Python được tuần tự hóa bằng cách sử dụng mô-đun pickle. Các đối tượng Python được chuyển đổi thành các luồng ký tự bằng cách sử dụng mô-đun này. Khi người dùng muốn truy xuất dữ liệu của tệp để sử dụng tập lệnh python khác thì dữ liệu của tệp sẽ được giải mã bởi mô-đun pickle. Các tính năng của mô-đun dưa và cách mô-đun này có thể được sử dụng trong tập lệnh python để tuần tự hóa và giải mã hóa được mô tả trong hướng dẫn này.

Tính năng dưa chua:

  • Nó chủ yếu được thiết kế để sử dụng cho tập lệnh Python.
  • Nó được sử dụng để lưu các đối tượng python giữa các quá trình.
  • Nó theo dõi tất cả các đối tượng được tuần tự hóa và đối tượng đã được tuần tự hóa trước đó sẽ không được tuần tự hóa nữa.
  • Nó có thể lưu và khôi phục cá thể lớp một cách minh bạch.
  • Nó không an toàn để sử dụng. Vì vậy, tốt hơn là không chọn lọc dữ liệu từ một nguồn không xác định.

dump () để tuần tự hóa:

Hàm dump () được sử dụng để chuyển đổi dữ liệu đối tượng thành dòng ký tự trước khi lưu vào tệp. Hàm này có thể có ba đối số. Hai đối số đầu tiên là bắt buộc và đối số cuối cùng là tùy chọn. Đối số đầu tiên nhận một đối tượng dữ liệu cần tuần tự hóa. Đối số thứ hai lấy đối tượng xử lý tệp của tệp đó nơi dữ liệu được pckled sẽ được lưu trữ. Đối số cuối cùng lấy tên giao thức.







Cú pháp:



bãi rác(Đối tượng dữ liệu,file_object, [giao thức])

load () để giải không khí:

Hàm load () được sử dụng để chuyển đổi dữ liệu dòng ký tự từ tệp thành một đối tượng Python. Hàm này chỉ chứa một đối số và đối tượng xử lý tệp của tệp sẽ chuyển làm giá trị đối số từ nơi dữ liệu sẽ được truy xuất.



Cú pháp:





trọng tải(file_object)

Chọn một đối tượng đơn giản để lưu trữ trong một tệp

Tạo một tệp có tên pickle1.py với tập lệnh python sau. Trong tập lệnh sau, một đối tượng dữ liệu có tên Đối tượng dữ liệu được khai báo để lưu trữ năm tên ngôn ngữ bằng cách lặp lại vòng lặp for. Tiếp theo, phương thức open () được sử dụng để chỉ định một trình xử lý tệp để tạo tệp nhị phân có tên ngôn ngữ. bãi rác() hàm được sử dụng ở đây để tuần tự hóa dữ liệu của Đối tượng dữ liệu và lưu trữ nó trong ngôn ngữ tập tin. Nếu việc tuần tự hóa được thực hiện đúng cách thì một thông báo, Dữ liệu được tuần tự hóa sẽ được in ra.

# Nhập mô-đun dưa chua
nhập khẩu dưa muối

# Khai báo đối tượng để lưu trữ dữ liệu
Đối tượng dữ liệu= []

# Lặp lại vòng lặp for 5 lần và lấy tên ngôn ngữ
ntrong phạm vi(5):
thô= đầu vào('Nhập tên ngôn ngữ:')

Đối tượng dữ liệu.nối thêm(thô)

# Mở tệp để ghi dữ liệu
file_handler= mở ra('ngôn ngữ', 'wb')

# Đưa dữ liệu của đối tượng vào tệp
dưa muối.bãi rác(Đối tượng dữ liệu,file_handler)

# đóng trình xử lý tệp để giải phóng tài nguyên
file_handler.gần()

# In tin nhắn
in('Dữ liệu được tuần tự hóa')

Đầu ra:



Sau khi chạy tập lệnh, nó sẽ lấy năm tên ngôn ngữ làm đầu vào.

Bỏ chọn dữ liệu từ một tệp

giải nén dữ liệu là ngược lại với chọn lọc dữ liệu. Tạo một tệp có tên pickle2.py với tập lệnh python sau. Ở đây, mở ra() phương thức được sử dụng để mở tệp nhị phân có tên ngôn ngữ , được tạo trong ví dụ trước. trọng tải() hàm được sử dụng để bỏ chọn dữ liệu khỏi tệp và lưu trữ nó trong biến Đối tượng dữ liệu . Kế tiếp, vòng lặp được sử dụng lặp lại dữ liệu từ Đối tượng dữ liệu và in trong thiết bị đầu cuối.

# Nhập mô-đun dưa chua
nhập khẩu dưa muối

# Mở trình xử lý tệp để đọc tệp từ nơi dữ liệu sẽ tải
file_handler= mở ra('ngôn ngữ', 'rb')

# Tải dữ liệu từ tệp sau khi giải mã hóa
Đối tượng dữ liệu= dưa muối.trọng tải(file_handler)

# Đóng trình xử lý tệp
file_handler.gần()

# In tin nhắn
in('Dữ liệu sau khi giải mã hóa')

# Lặp lại vòng lặp để in dữ liệu sau khi giải mã hóa
giờtrongĐối tượng dữ liệu:
in('Giá trị dữ liệu:',giờ)

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh.

Chọn một đối tượng lớp vào một tệp

Làm thế nào một đối tượng lớp có thể được chọn được hiển thị trong ví dụ sau. Tạo một tệp có tên pickle3.py với tập lệnh sau. Ở đây, Nhân viên lớp được khai báo để gán ba giá trị dữ liệu của một nhân viên. Tiếp theo, một đối tượng xử lý tệp có tên fileHandler được tạo ra để mở một tệp để viết. Sau khi khởi tạo đối tượng lớp, dữ liệu được tuần tự hóa bằng cách sử dụng bãi rác() chức năng và được lưu trữ trong tệp có tên nhân viên . Nếu tệp sẽ được tạo đúng cách thì thông báo, Dữ liệu được tuần tự hóa sẽ in.

# Nhập mô-đun dưa chua
nhập khẩu dưa muối

# Khai báo lớp nhân viên để lưu giá trị
lớpNhân viên:
phản đối __trong đó__(bản thân,Tên, e-mail,bài đăng):
bản thân.Tên =Tên
bản thân.e-mail = e-mail
bản thân.bài đăng =bài đăng

# Tạo đối tượng nhân viên
empObject=Nhân viên('Farheen', '[email được bảo vệ]', 'Người quản lý')

# Mở tệp để lưu trữ dữ liệu
fileHandler= mở ra('dữ liệu nhân viên', 'wb')

# Lưu dữ liệu vào tệp
dưa muối.bãi rác(empObject,fileHandler)

# Đóng tệp
fileHandler.gần()

# In tin nhắn
in('Dữ liệu được tuần tự hóa')

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh.

Bỏ chọn dữ liệu thành một Đối tượng Lớp

Một lớp với các thuộc tính và phương thức cần thiết sẽ yêu cầu khai báo để truy xuất dữ liệu từ một tệp đến một đối tượng lớp. Tạo một tệp có tên pickle4.py với đoạn mã sau. Nhân viên lớp được định nghĩa ở đây để lấy dữ liệu. fileObject biến được sử dụng để mở tệp, nhân viên để đọc. Kế tiếp, trọng tải() hàm được sử dụng để lưu trữ dữ liệu trong đối tượng lớp sau khi giải mã hóa. trưng bày() chức năng của Nhân viên lớp được gọi để in các giá trị dữ liệu của đối tượng lớp.

# Nhập mô-đun dưa chua
nhập khẩu dưa muối

# Khai báo lớp nhân viên để đọc và in dữ liệu từ tệp
lớpNhân viên:
phản đối __trong đó__(bản thân,Tên, e-mail,bài đăng):
bản thân.Tên =Tên
bản thân.e-mail = e-mail
bản thân.bài đăng =bài đăng

phản đốitrưng bày(bản thân):
in('Thông tin Nhân viên:')
in('Tên :', bản thân.Tên)
in('Email:', bản thân.e-mail)
in('Bài đăng :', bản thân.bài đăng)

# Mở tệp để đọc
fileObject= mở ra('dữ liệu nhân viên', 'rb')

# Bỏ chọn dữ liệu
Nhân viên= dưa muối.trọng tải(fileObject)

# Đóng tập tin
fileObject.gần()

#print khung dữ liệu
Nhân viên.trưng bày()

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh.

Phần kết luận

Mô-đun Pickle là một tính năng hữu ích của python để tuần tự hóa và giải mã dữ liệu. Sau khi hoàn thành các ví dụ được hiển thị trong hướng dẫn này, việc chuyển dữ liệu từ một tập lệnh python này sang tập lệnh python khác sẽ dễ dàng hơn cho bất kỳ ai.