Danh sách trong Python là một cấu trúc dữ liệu tích hợp lưu trữ dữ liệu không đồng nhất hoặc đồng nhất ở dạng tuần tự. Các phần tử trong danh sách có thể là duy nhất hoặc trùng lặp và được xác định bởi một vị trí duy nhất được gọi là chỉ mục. Python ghi danh sách vào tệp và lưu dữ liệu có trong danh sách vào tệp văn bản
Phạm vi
- Bài viết này là hướng dẫn từng bước về cách ghi danh sách vào tệp trong Python
- Trong bài viết này, nhiều phương pháp Python ghi danh sách vào tệp được xây dựng bằng các ví dụ
Cách ghi danh sách vào tệp trong Python
Phương thức write[] hoặc writelines[] giúp Python ghi danh sách vào tệp. Một danh sách trong Python có thể được viết trong một tệp theo nhiều cách khác nhau. Các bước cơ bản bao gồm
- Mở tệp văn bản ở chế độ ghi
- Viết các mục hiện tại từ danh sách vào tệp văn bản
- Đóng tệp sau khi hoàn thành thao tác ghi
Phương pháp 1. Sử dụng ghi[]
Danh sách được lặp lại bằng vòng lặp và trong mỗi lần lặp, phương thức write[] ghi một mục từ danh sách vào tệp cùng với một ký tự xuống dòng
bước
- Mở một. txt trong chế độ w [ở đây w có nghĩa là ghi]. Hàm open[] hiển thị đường dẫn tệp
- Tiếp theo, tạo một danh sách các mục. Sử dụng vòng lặp for để duyệt qua tất cả các mục trong danh sách
- Hàm write[] thêm danh sách các mục vào tệp văn bản
- Đóng tệp bằng hàm close[]
Mã số
items = ['Mango', 'Orange', 'Apple', 'Lemon'] file = open['items.txt','w'] for the item in items: file.write[item+"\n"] file.close[]
đầu ra
Phương pháp 2. Sử dụng writelines[]
writelines[] lấy một danh sách làm đối số của nó và ghi tất cả các phần tử của danh sách vào một tệp. Trong tệp văn bản, các thành phần danh sách được nối nối tiếp nhau mà không có bất kỳ khoảng trắng hoặc ký tự dòng mới nào
bước
- Mở một. txt trong chế độ w [ở đây w có nghĩa là ghi]. Hàm open[] hiển thị đường dẫn tệp
- Tạo một danh sách các mặt hàng
- Hàm writelines[] lấy danh sách các mục làm tham số và ghi chúng vào tệp văn bản
- Đóng tệp bằng hàm close[]
Mã số
items = ['Table ', 'Chair ', 'Mirror ', 'Curtain ', 'Almirah '] file = open['items.txt','w'] file.writelines[items] file.close[]
đầu ra
Phương pháp 3. Sử dụng String Join Cùng với cú pháp "with open"
Cú pháp with open tự động đóng tệp sau khi thực hiện tất cả các câu lệnh bên trong nó. Do đó, hàm close[] không cần phải được gọi rõ ràng
bước
- Tạo một danh sách các mặt hàng
- Mở một. txt trong chế độ w [ở đây w có nghĩa là ghi]. Hàm open[] hiển thị đường dẫn tệp
- Chức năng ghi trong khối này thêm danh sách các mục vào tệp văn bản
Mã số
items = ['Table ', 'Chair ', 'Mirror ', 'Curtain ', 'Almirah '] with open['items.txt','w'] as tfile: tfile.write['\n'.join[items]]
đầu ra
Phương pháp tốt nhất để ghi danh sách vào tệp trong Python là gì?
Giải pháp đơn giản nhất để Python ghi danh sách vào tệp là sử dụng tệp. write[] phương thức ghi tất cả các mục từ danh sách vào một tệp. Phương thức open[] mở tệp ở chế độ w. Danh sách được lặp lại và tất cả các mục được viết từng cái một
câu hỏi thường gặp
1. Chế độ truy cập 'w' nghĩa là gì?
Chế độ w đề cập đến việc viết. Nó tạo một tệp mới nếu một tệp có tên được chỉ định không có, nếu không sẽ ghi đè lên tệp hiện có
2. Hàm open[] nhận bao nhiêu đối số?
Hàm open[] nhận hai đối số tên tệp cùng với đường dẫn đầy đủ của nó và chế độ truy cập
3. Hàm close[] nhận bao nhiêu đối số?
Hàm close[] không nhận bất kỳ đối số nào
4. Tại sao sử dụng phương thức with open[] không an toàn?
Trong trường hợp với open[], nếu một số ngoại lệ xảy ra khi mở tệp, thì mã sẽ thoát mà không đóng tệp
Các lập trình viên Python sử dụng nhiều mảng, danh sách và từ điển làm cấu trúc dữ liệu tuần tự hóa. Việc lưu trữ liên tục các cấu trúc dữ liệu này yêu cầu tệp hoặc cơ sở dữ liệu hoạt động bình thường
Trong bài viết này, chúng ta sẽ xem cách ghi danh sách vào tệp và cách đọc lại danh sách đó vào bộ nhớ
Để ghi dữ liệu vào một tệp và để đọc dữ liệu từ một tệp, ngôn ngữ lập trình Python cung cấp các phương thức tiêu chuẩn write[]
và read[]
để xử lý một dòng, cũng như writelines[]
và readlines[]
để xử lý nhiều dòng. Hơn nữa, cả mô-đun pickle
và json
cũng cho phép các cách xử lý thông minh với các tập dữ liệu được đăng nhiều kỳ
Sử dụng các Phương thức read[] và write[]
Để xử lý các ký tự [chuỗi], các phương thức cơ bản của read[]
và write[]
hoạt động xuất sắc. Việc lưu từng dòng một danh sách như vậy vào tệp
1 có thể được thực hiện như sauitems = ['Table ', 'Chair ', 'Mirror ', 'Curtain ', 'Almirah '] file = open['items.txt','w'] file.writelines[items] file.close[]
Đầu tiên,
2 được mở rộng bằng dấu ngắt dòngitems = ['Table ', 'Chair ', 'Mirror ', 'Curtain ', 'Almirah '] file = open['items.txt','w'] file.writelines[items] file.close[]
read[]
0, sau đó được lưu vào tệp đầu ra. Bây giờ chúng ta có thể xem cách đọc toàn bộ danh sách từ tệp1 trở lại bộ nhớitems = ['Table ', 'Chair ', 'Mirror ', 'Curtain ', 'Almirah '] file = open['items.txt','w'] file.writelines[items] file.close[]
Hãy nhớ rằng bạn sẽ cần xóa dấu ngắt dòng ở cuối chuỗi. Trong trường hợp này, nó giúp chúng ta rằng Python cũng cho phép liệt kê các thao tác trên chuỗi. Việc loại bỏ này được thực hiện đơn giản như một thao tác danh sách trên chính chuỗi, giữ mọi thứ trừ phần tử cuối cùng. Phần tử này chứa ký tự
read[]
0 đại diện cho ngắt dòng trên hệ thống UNIX/LinuxSử dụng các Phương thức writelines[] và readlines[]
Như đã đề cập ở đầu bài viết này, Python cũng chứa hai phương thức -
writelines[]
vàreadlines[]
- để viết và đọc nhiều dòng trong một bước, tương ứng. Hãy ghi toàn bộ danh sách vào một tệp trên đĩaĐể đọc toàn bộ danh sách từ một tệp trên đĩa, chúng ta cần
Đoạn mã trên tuân theo cách tiếp cận truyền thống hơn được vay mượn từ các ngôn ngữ lập trình khác. Hãy viết nó theo cách Pythonic hơn
Thứ nhất, nội dung tệp được đọc qua
readlines[]
. Thứ hai, trong vòng lặpread[]
6 từ mỗi dòng, ký tự ngắt dòng được xóa bằng phương thứcread[]
7. Thứ ba, chuỗi được thêm vào danh sách địa điểm dưới dạng mục danh sách mớiSo với danh sách trước mã này nhỏ gọn hơn nhiều, nhưng có thể khó đọc hơn đối với các lập trình viên Python mới bắt đầu
Sử dụng Mô-đun Joblib
Các phương pháp ban đầu được giải thích cho đến nay lưu trữ danh sách theo cách mà con người vẫn có thể đọc được - theo đúng nghĩa đen là một danh sách tuần tự trong một tệp. Điều này thật tuyệt vời để tạo các báo cáo đơn giản hoặc xuất tệp xuất để người dùng sử dụng thêm, chẳng hạn như tệp CSV. Tuy nhiên - nếu mục đích của bạn là chỉ tuần tự hóa một danh sách thành một tệp, có thể được tải sau này, thì không cần phải lưu trữ nó ở định dạng mà con người có thể đọc được
Mô-đun
read[]
8 cung cấp cách dễ dàng nhất để kết xuất một đối tượng Python [thực sự có thể là bất kỳ đối tượng nào]
read[]
8 vẫn là cách đơn giản và rõ ràng nhất để tuần tự hóa các đối tượng ở định dạng hiệu quả và tải chúng sau. Bạn có thể sử dụng bất kỳ định dạng tùy ý nào, chẳng hạn nhưwritelines[]
0,writelines[]
1, v.v. Điều đó không thực sự quan trọng - cảread[]
8 và các lựa chọn thay thế nhưpickle
đều sẽ đọc tệp tốtSử dụng Mô-đun dưa chua
Để thay thế cho
read[]
8, chúng ta có thể sử dụngpickle
. Phương thứcwritelines[]
6 của nó lưu trữ danh sách một cách hiệu quả dưới dạng luồng dữ liệu nhị phân. Đầu tiên, tệp đầu rawritelines[]
7 được mở để ghi nhị phân [writelines[]
8]. Thứ hai, danh sách được lưu trữ trong tệp đã mở bằng phương phápwritelines[]
6Bước tiếp theo ta đọc danh sách từ file như sau. Đầu tiên, tệp đầu ra
writelines[]
7 được mở nhị phân để đọc [readlines[]
1]. Thứ hai, danh sách các địa điểm được tải từ tệp bằng phương thứcreadlines[]
2Hai ví dụ ở đây chứng minh việc sử dụng các chuỗi. Mặc dù,
pickle
hoạt động với tất cả các loại đối tượng Python như chuỗi, số, cấu trúc tự xác định và mọi cấu trúc dữ liệu tích hợp khác mà Python cung cấpSử dụng định dạng JSON
Định dạng dữ liệu nhị phân mà
pickle
sử dụng dành riêng cho Python. Để cải thiện khả năng tương tác giữa các chương trình khác nhau, Ký hiệu đối tượng JavaScript [JSON] cung cấp một lược đồ dễ sử dụng và con người có thể đọc được, do đó trở nên rất phổ biến để tuần tự hóa các tệp và chia sẻ chúng qua các APIHãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Ví dụ sau minh họa cách ghi danh sách các loại biến hỗn hợp vào tệp đầu ra bằng mô-đun json. Sau khi mở tệp đầu ra để ghi, phương thức
writelines[]
6 lưu trữ danh sách cơ bản trong tệp bằng ký hiệu JSONĐọc nội dung của tệp đầu ra trở lại bộ nhớ cũng đơn giản như ghi dữ liệu. Phương thức tương ứng với
writelines[]
6 được đặt tên làreadlines[]
2Phần kết luận
Các phương pháp khác nhau mà chúng tôi đã trình bày ở trên bao gồm từ ghi/đọc dữ liệu đơn giản cho đến kết xuất/tải dữ liệu qua luồng nhị phân bằng cách sử dụng dưa chua và JSON. Điều này đơn giản hóa việc lưu trữ một danh sách liên tục và đọc lại vào bộ nhớ