Hướng dẫn how to save data to a file in python - cách lưu dữ liệu vào một tệp trong python

Lưu dữ liệu vào một tệp là một trong những tác vụ lập trình phổ biến nhất mà bạn có thể gặp trong cuộc sống nhà phát triển của mình.

Nói chung, các chương trình lấy một số đầu vào và tạo ra một số đầu ra. Có rất nhiều trường hợp chúng tôi muốn duy trì những kết quả này. Chúng tôi có thể thấy mình lưu dữ liệu vào một tệp để xử lý sau - từ các trang web, chúng tôi duyệt, các kết xuất dữ liệu bảng đơn giản mà chúng tôi sử dụng cho các báo cáo, học máy và đào tạo hoặc đăng nhập trong thời gian chạy ứng dụng - chúng tôi dựa vào các ứng dụng ghi vào các tệp thay vì thực hiện nó bằng tay.

Python cho phép chúng tôi lưu các tệp thuộc nhiều loại khác nhau mà không phải sử dụng các thư viện của bên thứ ba. Trong bài viết này, chúng tôi sẽ tìm hiểu các định dạng tệp phổ biến nhất trong Python.

Mở và đóng tệp

Mở một tập tin

Nội dung của một tệp có thể được truy cập khi nó được mở và nó không còn có sẵn để đọc và viết sau khi nó được đóng lại.

Mở một tệp rất đơn giản trong Python:

my_data_file = open('data.txt', 'w')

Khi mở tệp, bạn sẽ cần tên tệp - một chuỗi có thể là đường dẫn tương đối hoặc tuyệt đối. Đối số thứ hai là chế độ, điều này xác định các hành động bạn có thể làm với tệp mở.

Dưới đây là một số trong những cái thường được sử dụng:

  • r - (chế độ mặc định) Mở tệp để đọc
  • w - Mở tệp để viết, ghi đè nội dung nếu tệp đã tồn tại với dữ liệu
  • my_data_file.close()
    
    0 - Tạo một tệp mới, không thành công nếu nó tồn tại
  • my_data_file.close()
    
    1 - Mở tệp để viết, nối thêm dữ liệu mới ở cuối nội dung của tệp nếu nó đã tồn tại
  • my_data_file.close()
    
    2 - Viết dữ liệu nhị phân vào các tệp thay vì dữ liệu văn bản mặc định
  • my_data_file.close()
    
    3 - Cho phép đọc và ghi vào chế độ

Giả sử bạn muốn ghi vào một tệp và sau đó đọc nó sau, chế độ của bạn phải là 'W+'. Nếu bạn muốn viết và sau đó đọc từ một tệp, mà không cần xóa các nội dung trước đó thì bạn sẽ sử dụng 'A+'.

Đóng một tập tin

Đóng một tệp thậm chí còn dễ dàng hơn trong Python:

my_data_file.close()

Bạn chỉ cần gọi phương thức đóng trên đối tượng tệp. Điều quan trọng là phải đóng tệp sau khi bạn sử dụng xong và có nhiều lý do chính đáng để làm như vậy:

  • Mở tệp chiếm không gian trong ram
  • Giảm cơ hội tham nhũng dữ liệu vì nó không còn có thể truy cập được
  • Có giới hạn các tệp mà hệ điều hành của bạn có thể mở

Đối với các tập lệnh nhỏ, những điều này không phải là những lo ngại và một số triển khai Python sẽ thực sự tự động đóng các tệp cho bạn, nhưng đối với các chương trình lớn không để việc đóng các tệp của bạn để có cơ hội và đảm bảo giải phóng các tài nguyên đã sử dụng.

Sử dụng từ khóa "với"

Đóng một tập tin có thể dễ dàng bị lãng quên, sau tất cả chúng ta là con người. May mắn cho chúng tôi, Python có một cơ chế để sử dụng một tệp và tự động đóng nó khi chúng tôi hoàn thành.

Để làm điều này, chúng tôi chỉ cần sử dụng từ khóa

my_data_file.close()
4:

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed

Tệp sẽ được mở cho tất cả các mã được thụt vào sau khi sử dụng từ khóa

my_data_file.close()
4, được đánh dấu là nhận xét
my_data_file.close()
6. Khi khối mã đó hoàn tất, tệp sẽ tự động đóng.

Đây là cách khuyến nghị để mở và ghi vào một tệp vì bạn không phải đóng thủ công nó để giải phóng tài nguyên và nó cung cấp một cơ chế không an toàn để giữ cho tâm trí của bạn về các khía cạnh quan trọng hơn của lập trình.

Lưu tệp văn bản

Bây giờ chúng ta đã biết cách tốt nhất để truy cập một tệp, hãy thẳng thắn viết dữ liệu.

May mắn thay, Python cũng làm điều này đơn giản:

with open('do_re_mi.txt', 'w') as f:
    f.write('Doe, a deer, a female deer\n')
    f.write('Ray, a drop of golden sun\n')

Hàm

my_data_file.close()
7 lấy một chuỗi và đặt nội dung đó vào luồng tệp. Mặc dù chúng tôi không lưu trữ nó, hàm
my_data_file.close()
7 trả về số lượng ký tự mà nó vừa nhập, tức là độ dài của chuỗi đầu vào.

Lưu ý: Lưu ý sự bao gồm của ký tự mới,

my_data_file.close()
9. Nó được sử dụng để viết vào một dòng tiếp theo trong tệp, nếu không, tất cả các văn bản sẽ được thêm vào dưới dạng một dòng.: Notice the inclusion of the newline character,
my_data_file.close()
9. It’s used to write to a next line in the file, otherwise, all the text would be added as a single line.

Lưu nhiều dòng cùng một lúc

Với chức năng

my_data_file.close()
7, chúng ta có thể lấy một chuỗi và đặt nó vào một tệp. Điều gì sẽ xảy ra nếu chúng ta muốn viết nhiều dòng cùng một lúc?

Chúng ta có thể sử dụng hàm

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
1 để đặt dữ liệu theo một chuỗi (như danh sách hoặc tuple) và vào một tệp:

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

with open('browsers.txt', 'w') as f:
    web_browsers = ['Firefox\n', 'Chrome\n', 'Edge\n']
    f.writelines(web_browsers)

Như trước đây, nếu chúng tôi muốn dữ liệu xuất hiện trong các dòng mới, chúng tôi sẽ bao gồm ký tự dòng mới ở cuối mỗi chuỗi.

Nếu bạn muốn bỏ qua bước nhập thủ công ký tự dòng sau mỗi mục trong danh sách, thì thật dễ dàng để tự động hóa nó:

with open('browsers.txt', 'w') as f:
    web_browsers = ['Firefox\n', 'Chrome\n', 'Edge\n']
    f.writelines("%s\n" % line for line in web_browsers)

Lưu ý: Đầu vào cho

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
1 phải là một chuỗi các chuỗi hoặc byte phẳng - không có số, đối tượng hoặc chuỗi lồng nhau như một danh sách trong danh sách được cho phép.: The input for
with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
1 must be a flat sequence of strings or bytes - no numbers, objects or nested sequences like a list within a list are allowed.

Nếu bạn quan tâm đến việc đọc thêm về danh sách và bộ dữ liệu, chúng tôi đã có một bài viết dành riêng cho chúng - liệt kê các bộ dữ liệu trong Python.

Lưu tệp CSV

Các tệp CSV (Giá trị phân tách bằng dấu phẩy) thường được sử dụng để lưu trữ dữ liệu bảng. Do sự phổ biến của nó, Python có một số phương thức tích hợp để làm cho việc viết các tệp thuộc loại đó dễ dàng hơn:

import csv

weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
sales = ['10', '8', '19', '12', '25']

with open('sales.csv', 'w') as csv_file:
    csv_writer = csv.writer(csv_file, delimiter=',')
    csv_writer.writerow(weekdays)
    csv_writer.writerow(sales)

Trước tiên chúng tôi cần nhập thư viện

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
3 để có chức năng trợ giúp của họ. Chúng tôi mở tệp khi chúng tôi quen với nhưng thay vì viết nội dung trên đối tượng
with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
4, chúng tôi tạo một đối tượng mới gọi là
with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
5.

Đối tượng này cung cấp cho chúng tôi phương thức

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
6 cho phép chúng tôi đặt tất cả dữ liệu của hàng trong tệp trong một lần.

Nếu bạn muốn tìm hiểu thêm về việc sử dụng các tệp CSV trong Python chi tiết hơn, bạn có thể đọc thêm ở đây: Đọc và viết các tệp CSV bằng Python.

Lưu tệp JSON

JSON là một định dạng phổ biến khác để lưu trữ dữ liệu và giống như với CSVS, Python đã làm cho nó trở nên đơn giản để ghi dữ liệu từ điển của bạn vào các tệp JSON:

import json

my_details = {
    'name': 'John Doe',
    'age': 29
}

with open('personal.json', 'w') as json_file:
    json.dump(my_details, json_file)

Chúng tôi cần nhập thư viện

with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
7 và mở tệp. Để thực sự ghi dữ liệu vào tệp, chúng tôi chỉ gọi hàm
with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
8, cung cấp cho nó từ điển dữ liệu của chúng tôi và đối tượng tệp.

Nếu bạn muốn biết thêm về việc sử dụng các tệp JSON trong Python, bạn có thể nhiều hơn từ bài viết này: Đọc và viết JSON vào một tệp trong Python.

Sự kết luận

Tiết kiệm các tập tin có thể có ích trong nhiều loại chương trình chúng tôi viết. Để viết một tệp trong Python, trước tiên chúng ta cần mở tệp và đảm bảo rằng chúng ta đóng nó sau.

Tốt nhất là sử dụng từ khóa

my_data_file.close()
4 để các tệp tự động đóng khi chúng tôi viết xong cho chúng.

Chúng ta có thể sử dụng phương thức

my_data_file.close()
7 để đặt nội dung của chuỗi vào tệp hoặc sử dụng
with open('data.txt', 'w') as my_data_file:
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
1 nếu chúng ta có một chuỗi văn bản để đưa vào tệp.

Đối với dữ liệu CSV và JSON, chúng tôi có thể sử dụng các chức năng đặc biệt mà Python cung cấp để ghi dữ liệu vào một tệp khi tệp được mở.

Làm thế nào để bạn lưu dữ liệu vào một tệp văn bản trong Python?

Để ghi vào tệp văn bản bằng Python, bạn làm theo các bước sau: Đầu tiên, hãy mở tệp văn bản để ghi (hoặc nối) bằng hàm Open ()..Third, Đóng tệp bằng phương thức đóng ().open the text file for writing (or append) using the open() function. Second, write to the text file using the write() or writelines() method. Third, close the file using the close() method.

Làm thế nào để bạn lưu và tạo một tệp trong Python?

Để tạo và ghi vào một tệp mới, hãy sử dụng mở với tùy chọn W W W.Tùy chọn W W W sẽ xóa bất kỳ tệp hiện có nào trước đây và tạo một tệp mới để viết.Nếu bạn muốn nối vào một tệp hiện có, thì hãy sử dụng câu lệnh Open với tùy chọn của A A.Trong chế độ Phụ lục, Python sẽ tạo tệp nếu nó không tồn tại.use open with “w” option. The “w” option will delete any previous existing file and create a new file to write. If you want to append to an existing file, then use open statement with “a” option. In append mode, Python will create the file if it does not exist.