Lưu một chính tả vào một tệp

Save Dict File



Từ điển là một đối tượng rất nổi tiếng trong python. Và nó là một tập hợp các khóa và giá trị. Khóa của dict phải là bất biến, và nó có thể là số nguyên, float, string, nhưng bản thân danh sách và dict không thể là khóa. Vì vậy, đôi khi chúng ta cần lưu các đối tượng dict vào một tệp. Vì vậy, chúng ta sẽ xem các phương pháp khác nhau để lưu một đối tượng dict trong một tệp.

Chúng ta có thể ghi từ điển vào một tệp bằng Python theo nhiều cách khác nhau như:







  1. Tệp giá trị được phân tách bằng dấu phẩy (.csv)
  2. Tệp json (.json)
  3. Tệp văn bản (.txt)
  4. Tệp dưa chua (.pkl)

Chúng tôi sẽ giải thích tất cả các phương pháp trên.



Phương pháp 1: Lưu từ điển ở định dạng CSV

Để lưu từ điển vào CSV (Các giá trị được phân tách bằng dấu phẩy), chúng tôi sử dụng mô-đun CSV. Các giá trị được phân tách bằng dấu phẩy để lưu python dict là phương pháp phổ biến và nổi tiếng nhất. Hầu hết các lập trình viên chỉ sử dụng phương pháp này để lưu dict vào một tệp. Để lưu từ điển trong một tệp dưới dạng CSV rất dễ dàng vì chúng ta phải chuyển dữ liệu dưới dạng một chuỗi.



Ví dụ_1: dict_to_csv.py





# dict_to_csv.py
nhập khẩu csv

dict_sample= {'Tên':'LinuxHint', 'thành phố':'ĐIỀU ĐÓ', 'giáo dục':'Kỹ thuật'}

với mở ra('data.csv', 'trong') nhưNS:
Chìa khóatrongdict_sample.chìa khóa():
NS.viết('% NS '%(Chìa khóa,dict_sample[Chìa khóa]))

Dòng 2 : Chúng tôi nhập mô-đun python CSV.

Dòng 4 : Chúng tôi đã tạo một dữ liệu dict mẫu. Chúng tôi sẽ cố gắng lưu nó dưới dạng tệp CSV.



Dòng 6: Chúng tôi đang sử dụng câu lệnh ‘with’ ở đây để ghi tệp CSV. Câu lệnh ‘with’ tự động xử lý việc xử lý ngoại lệ trong quá trình đọc hoặc ghi tệp. Chúng ta mở tệp data.csv ở chế độ ghi và gán đối tượng đó cho biến f.

Dòng 7 , Chúng tôi đang chạy một vòng lặp for trích xuất khóa và trong dòng tiếp theo, nó ghi khóa và key_value vào tệp CSV. Vì vậy, vòng lặp này sẽ chạy cho đến khi có dữ liệu.

Đầu ra: data.csv

Tên,LinuxHint
thành phố,ĐIỀU ĐÓ
giáo dục,Kỹ thuật

Vì vậy, ở trên hiển thị tệp đầu ra sau khi ghi trên data.csv.

Bây giờ, chúng ta đã hiểu cách lưu dict vào một tệp ở dạng CSV. Hãy thử với một ví dụ khác mà chúng ta muốn ghi danh sách các đối tượng dict vào tệp CSV.

Ví dụ_2: dict_to_csv_2.py

# dict_to_csv_2.py

nhập khẩu csv

csvColumns= ['Thành phố', 'Quốc gia', 'Thứ hạng']
dictDemo= [
{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
]
csvFileName= 'data.csv'
cố gắng:
với mở ra(csvFileName, 'trong') nhưNS:
nhà văn= csv.DictWriter(NS,tên trường=csvColumns)
nhà văn.người viết giấy()
dữ liệutrongdictDemo:
nhà văn.viết thư(dữ liệu)
ngoại trừ Lỗi IO:
in('Có lỗi')

Dòng 3 đến 12: Chúng tôi nhập mô-đun CSV của python và tạo danh sách các đối tượng dict. Chúng tôi cũng tạo một danh sách các tên cột.

Dòng 13: Chúng tôi đã gán tên tệp CSV cho một biến.

Dòng 15: Chúng tôi sử dụng câu lệnh ‘with’ và câu lệnh đã gán đối tượng trả về của phương thức __enter__ cho biến f.

Dòng 16 đến 19: Sau khi gán đối tượng trả về cho biến f, chúng tôi gọi một phương thức DictWriter của mô-đun CSV và truyền hai tham số (tên tệp (f) và tên cột). Sau đó, chúng tôi gọi một phương thức writeheader () sẽ ghi hàng đầu tiên của tệp CSV, thường là tên của các trường. Sau đó, chúng tôi chạy một vòng lặp for trên danh sách các đối tượng dict và ghi từng đối tượng vào tệp CSV bằng cách sử dụng phương thức writerow ().

Phương pháp 2: Lưu dict vào tệp văn bản ở định dạng JSON (chế độ nối thêm)

Chúng ta cũng có thể lưu các đối tượng dict dưới dạng JSON vào một tệp. Đoạn mã dưới đây sẽ giải thích tương tự. Mã này cũng giải thích cách chúng tôi có thể thêm JSON mới vào danh sách JSON hiện có.

Thí dụ : dict_to_file_asJSON.py

# dict_to_file_asJSON.py

nhập khẩujson

dictDemo= [
{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
]

tên tập tin= 'dict.json'

# Ghi danh sách các đối tượng dict vào một tệp
với mở ra(tên tập tin,chế độ='trong') nhưNS:
json.bãi rác(dictDemo,NS)

# Ghi một đối tượng dict mới vào một tệp dưới dạng nối thêm và ghi đè lên toàn bộ tệp
với mở ra(tên tập tin,chế độ='trong') nhưNS:
dictDemo.nối thêm({'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc'})
json.bãi rác(dictDemo,NS)

Đầu ra : dict.json

[{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc'}
]

Dòng 1 đến 13 : Chúng tôi nhập mô-đun JSON. Sau đó, chúng tôi tạo một danh sách các đối tượng dict cho bản trình diễn. Sau đó, chúng tôi đã gán tên của tệp JSON cho một tên tệp biến.

Dòng 15 đến 17 : Chúng tôi đang sử dụng câu lệnh ‘with’ để mở tệp JSON để viết, sau đó chúng tôi sử dụng phương thức json.dump để chuyển đổi các đối tượng dict thành JSON và sau đó ghi vào tệp.

Dòng 20 đến 22: Những dòng này rất quan trọng vì điều gì sẽ xảy ra? Nếu chúng ta cố gắng thêm các đối tượng JSON mới vào các tệp đã được viết sẵn. Dữ liệu trước đó sẽ bị mất vì ghi đè. Sau đó, chúng ta có thể sử dụng tên danh sách dict trước đó như chúng ta đã làm (dictDemo), và sau đó chúng ta nối đối tượng mới vào đó. Và cuối cùng, chúng tôi chuyển đổi toàn bộ tệp thành JSON và ghi đè lên toàn bộ tệp.

Trong đầu ra, chúng ta có thể thấy rằng một đối tượng JSON mới được thêm vào danh sách JSON hiện có.

Phương pháp 3: Lưu các đối tượng từ điển vào một tệp ở dạng txt

Chúng tôi cũng có thể lưu từ điển thành định dạng chuỗi thông thường vào tệp. Vì vậy, phương pháp dưới đây là một cách rất đơn giản để lưu các đối tượng từ điển vào tệp dưới dạng văn bản. Nhưng mã này sẽ không hoạt động nếu chúng ta muốn nối một đối tượng từ điển mới vào tệp vì nó sẽ ghi đè lên dữ liệu đã được ghi trước đó. Vì vậy, về điều đó, chúng ta sẽ thấy nó trong đoạn mã tiếp theo.

Thí dụ: dict_to_txt.py

# dict_to_txt.py

dictDemo= [
{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
]

tên tập tin= 'dict.txt'

# Ghi danh sách các đối tượng dict vào một tệp
với mở ra(tên tập tin,chế độ='trong') nhưNS:
NS.viết(P(dictDemo))

Đầu ra: dict.txt

[{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7}]

Dòng 1 đến 11 : Chúng tôi đã tạo một danh sách các đối tượng từ điển và gán tên của tệp dict.txt cho một tên tệp biến.

Dòng 14 đến 15 : Chúng tôi đang sử dụng câu lệnh ‘with’ ở đây, câu lệnh này sẽ tự động xử lý ngoại lệ. Và chúng tôi đang viết danh sách đối tượng dict dưới dạng một chuỗi vào một tệp.

Thí dụ: dict_to_txt_2.py

Chúng ta đã thấy cách lưu các đối tượng dict vào một tệp ở dạng .txt. Nhưng trong đoạn mã trên, có một vấn đề với việc thêm một đối tượng mới. Vì vậy, chúng tôi thay đổi phương thức append từ ‘w’ thành ‘a’, phương thức này có thể giải quyết vấn đề của chúng tôi như được hiển thị bên dưới trong đoạn mã.

# dict_to_txt_2.py

'' ': cvar
Mã này sẽ lưu các đối tượng dict trong tệp với
chế độ nối thêm.
'' '

dictDemo= [
{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
]

tên tập tin= 'dict_to_file_appendMode.txt'

# Ghi danh sách các đối tượng dict vào một tệp
với mở ra(tên tập tin,chế độ='đến') nhưNS:
NS.viết(P(dictDemo))

Dòng 7 đến 15 : Chúng tôi đã tạo một danh sách các đối tượng từ điển và gán tên của tệp dict_to_file_appendMode.txt cho một tên tệp biến.

Dòng 18 đến 19 : Chúng tôi thay đổi mode = ‘a’ và điều này sẽ giải quyết được vấn đề của chúng tôi. Kết quả bên dưới cho thấy rằng chúng tôi đã thêm hai đối tượng dict trong cùng một tệp mà không ghi đè dữ liệu trước đó.

Đầu ra: dict_to_file_appendMode.txt

[{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7}]

[{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7}]

Phương pháp 4: Lưu đối tượng dict vào một tệp bằng phương thức pickle.

Chúng tôi cũng có thể lưu đối tượng dict vào một tệp bằng cách sử dụng mô-đun python dưa. Mô-đun pickle hỗ trợ nhiều đối tượng để tuần tự hóa trong python và cũng hỗ trợ các đối tượng dict.

# dict_to_file_use_pickle.py

nhập khẩu dưa muối

dictDemo= [
{'Thành phố':'Newyork', 'Quốc gia':'SỬ DỤNG', 'Thứ hạng':3},
{'Thành phố':'Sydney', 'Quốc gia':'Châu Úc', 'Thứ hạng':5},
{'Thành phố':'Dubai', 'Quốc gia':'UAE', 'Thứ hạng':10},
{'Thành phố':'Mumbai', 'Quốc gia':'Ấn Độ', 'Thứ hạng':17},
{'Thành phố':'Bejing', 'Quốc gia':'Trung Quốc', 'Thứ hạng':7},
]

tên tập tin= 'picklefile.pkl'

với mở ra(tên tập tin, 'xa') nhưNS:
dưa muối.bãi rác(dictDemo,NS)

Dòng 3 đến 13 : Chúng tôi nhập bộ chọn mô-đun và tạo danh sách các đối tượng dict. Chúng tôi cũng tạo một tên tệp nơi chúng tôi sẽ lưu các đối tượng dict của chúng tôi.

Dòng 15 đến 16 : Chúng tôi đang sử dụng câu lệnh ‘with’ ở đây và mở tệp bằng chế độ bổ sung và định dạng nhị phân. Sau đó, chúng tôi kết xuất các đối tượng dict vào tệp.

Phần kết luận

Vì vậy, chúng ta đã thấy các phương pháp khác nhau để lưu một đối tượng từ điển vào một tệp. Nó phụ thuộc vào người dùng rằng cách họ muốn lưu đối tượng vào tệp. Các phương pháp phổ biến nhất để lưu đối tượng dict vào tệp là JSON và CSV. Các định dạng JSON và CSV rất nổi tiếng theo quan điểm lập trình hoặc dễ dàng xử lý trong python. Chúng tôi cũng đã thấy chế độ nối thêm để lưu tệp.

Mã cho bài viết này có thể được tải xuống từ liên kết này:

https://github.com/shekharpandey89/save-dict-object-to-a-file