Chương trình Giáo dục Kỹ thuật (EngEd) này được hỗ trợ bởi Mục. Triển khai tức thì các container trên nhiều nhà cung cấp đám mây trên toàn cầu
Dùng thử miễn phí
Cách sử dụng Cơ sở dữ liệu văn bản trong PythonNgày 23 tháng 12 năm 2021
- chủ đề
- ngôn ngữ
Một trong những cách chính để lưu trữ dữ liệu là sử dụng cơ sở dữ liệu. Cơ sở dữ liệu là tập hợp dữ liệu được tổ chức theo cách giúp truy cập và thao tác dễ dàng hơn
Mặc dù cơ sở dữ liệu thường được sử dụng để lưu trữ dữ liệu nhưng chúng không phải là cách duy nhất để lưu trữ dữ liệu. Bạn có thể lưu trữ dữ liệu theo cách có cấu trúc bên trong tệp. Tệp sẽ cho phép bạn ghi và truy xuất dữ liệu để sử dụng trong chương trình của mình. Một số tệp được sử dụng nhiều nhất là tệp Văn bản và tệp JSON
sử dụng. txt làm cơ sở dữ liệu
Tệp văn bản là một trong những định dạng tệp được sử dụng nhiều nhất trên thế giới hiện nay. Một trong những lý do chính khiến tệp văn bản được sử dụng là tính đơn giản của chúng. Các tệp văn bản không yêu cầu sử dụng bất kỳ phần mềm đặc biệt nào. Chúng thậm chí không yêu cầu bất kỳ kiến thức định dạng nào, không giống như cơ sở dữ liệu
Các tệp văn bản có thể được sử dụng để lưu trữ tất cả các loại dữ liệu. Hầu hết, chúng được sử dụng để lưu trữ văn bản đơn giản không yêu cầu định dạng đặc biệt. Ví dụ: một tệp văn bản có thể được sử dụng để xuất danh sách tên, email hoặc kết hợp cả hai
Ghi dữ liệu vào tệp văn bản bằng write()
Trong Python, đọc và ghi tệp văn bản được hỗ trợ theo mặc định và không yêu cầu thư viện bổ sung
Để minh họa cách chúng ta có thể sử dụng tệp văn bản để lưu trữ dữ liệu, hãy xây dựng một chương trình đơn giản sẽ lưu trữ danh sách nhân viên trong tệp văn bản. Tạo một tệp mới items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 1 ở đâu đó trên máy của bạn và mở tệp đó trên trình chỉnh sửa mã của bạn
Thêm đoạn mã sau
employees = ['John', 'Mary', 'Bob', 'Jane'] file = open('employees.txt', "a") for employee in employees: file.write(employee + '\n') file.close()
Đầu tiên chúng ta tạo một danh sách chứa tên của các nhân viên. Sau đó, chúng tôi mở một tệp có tên items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 2. Điều quan trọng cần lưu ý là nếu một tệp có cùng tên đã tồn tại, các mục sẽ được thêm vào tệp đó. Nếu nó không tồn tại, một tệp mới sẽ được tạo
Sau đó, chúng tôi lặp qua danh sách và viết tên của từng nhân viên vào tệp bằng phương pháp items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 3. Chúng tôi sử dụng ký tự items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 4 để phân tách tên của từng nhân viên bằng một dòng mới. Cuối cùng, chúng tôi đóng tệp
Ghi dữ liệu vào tệp văn bản bằng writelines()
Phương thức items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 5 tương tự như phương thức items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 3, chỉ khác là nó lấy một danh sách các chuỗi làm đối số
Để chứng minh cách thức hoạt động của nó, hãy chạy mã bên dưới
items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close()
Chúng ta sử dụng hàm items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 7 để thêm một dòng mới (items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 8) vào mỗi mục trong danh sách. Sau đó, chúng tôi mở một tệp có tên items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 2 ở chế độ ghi (file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 0) và ghi danh sách nhân viên vào tệp. Tệp bị ghi đè (nội dung hiện có bị xóa sau đó nội dung mới được ghi) mỗi khi chúng tôi chạy chương trình
Đọc dữ liệu từ tệp văn bản bằng read()
Để đọc dữ liệu từ một tệp văn bản, chúng ta sử dụng phương thức file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 1. Phương thức này trả về một chuỗi chứa nội dung của tệp
file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close()
Chúng tôi mở tệp ở chế độ đọc (file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 2) và sau đó in nội dung của tệp. Chúng tôi sử dụng phương pháp file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 3 để lấy loại nội dung. Chúng ta có thể thấy rằng nội dung là một chuỗi
Khi chúng tôi in nội dung, nó được chia thành nhiều dòng. Điều này là do ký tự items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 4 mà chúng tôi đã thêm vào khi ghi tệp. Sử dụng phương pháp file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 1 không phải là cách tốt nhất để đọc tệp. Điều này là do hầu hết thời gian, bạn cần sử dụng nội dung tệp ở đâu đó trong chương trình của mình
Để khắc phục điều này, chúng ta có thể sử dụng phương pháp file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 6
Đọc dữ liệu từ tệp văn bản bằng readlines()
Phương thức file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 6 trả về một danh sách các chuỗi, mỗi chuỗi đại diện cho một dòng trong tệp
file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close()
Chúng tôi sử dụng phương pháp file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 8 để lấy danh sách các dòng trong tệp. Chúng tôi lặp qua danh sách in từng dòng. Phương thức file = open('employees.txt', "r") content = file.read() print("content type: " + type(content).__name__ + "\n") print(content) file.close() 9 xóa ký tự xuống dòng ở cuối mỗi dòng. Để sử dụng nội dung dòng trong chương trình của bạn, bây giờ bạn có thể thêm các mục vào danh sách
file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close()
Chúng tôi lặp qua danh sách nối thêm từng dòng vào danh sách file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 0. Bây giờ bạn có thể sử dụng danh sách này trong chương trình của mình. Việc triển khai này khá cơ bản. Giả sử bạn muốn lưu trữ các đối tượng trong một tệp văn bản. Bạn sẽ làm điều này như thế nào?
Lưu trữ các đối tượng trong một tệp văn bản
Để lưu trữ các đối tượng trong tệp văn bản, chúng ta cần chuyển đổi chúng thành chuỗi trước khi ghi chúng vào tệp
employees = [ {'name': 'John', 'age': 30}, {'name': 'Mary', 'age': 25}, {'name': 'Bob', 'age': 40}, {'name': 'Jane', 'age': 45} ] file = open('employees.txt', "a") for employee in employees: string = "{name}||{age}\n".format(**employee) file.write(string) file.close()
Đầu tiên chúng ta tạo một danh sách từ điển chứa các nhân viên. Sau đó, chúng tôi lặp qua danh sách và tạo một chuỗi cho từng nhân viên. Chúng tôi sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 1 và toán tử file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 2 để tạo chuỗi và giải nén từ điển tương ứng. Bây giờ hãy chuyển chuỗi này về dạng ban đầu
Đọc đối tượng từ tệp văn bản
Để lấy lại các đối tượng ban đầu của chúng tôi, chúng tôi phải đọc từng dòng tệp. Sau đó, chúng ta có thể sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 3 để tách chuỗi thành một danh sách các chuỗi
file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name, age = line.strip().split('||') employees.append({'name': name, 'age': int(age)}) print(employees) file.close()
Chúng tôi lặp qua danh sách nội dung và chia mỗi dòng thành hai biến file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 4 và file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 5. Sau đó, chúng tôi chuyển đổi hai biến thành một từ điển và nối chúng vào danh sách file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 0. Bây giờ bạn có thể sử dụng danh sách này trong chương trình của mình
Để xây dựng, lưu trữ và đọc các cấu trúc lớn bằng tệp văn bản, bạn có thể cân nhắc sử dụng mô-đun file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 7. Nó cung cấp một cách để tuần tự hóa và giải tuần tự hóa các đối tượng Python để lưu trữ trong tệp
Nếu việc sử dụng tệp văn bản khiến bạn cảm thấy hơi lộn xộn, bạn có thể cân nhắc sử dụng tệp JSON
Sử dụng tệp JSON làm cơ sở dữ liệu
JSON là định dạng dữ liệu mà con người có thể đọc được, dễ đọc và được hỗ trợ nguyên bản trong hầu hết các ngôn ngữ lập trình chính. Trong Python, chúng ta có thể sử dụng mô-đun file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 8 để làm việc với các tệp JSON. Mô-đun file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 8 cung cấp một cách đơn giản để đọc và ghi tệp JSON. JSON lưu trữ dữ liệu ở định dạng cặp khóa-giá trị
Đây là một ví dụ về một đối tượng JSON
{ "name": "John", "age": 30, "is_developer": true }
Để minh họa cách chúng tôi có thể ghi vào tệp JSON, hãy chạy mã bên dưới
import json employees = [ { "name": "Carol", "age": 30, "is_developer": True }, { "name": "Erastus", "age": 30, "is_developer": False }, { "name": "Eric", "age": 20, "is_developer": True } ] json_obj = json.dumps(employees, indent=4) file = open("employees.json", "w") file.write(json_obj) file.close()
Chúng ta cần tạo danh sách từ điển file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 0. Sau đó, chúng tôi sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 1 để chuyển đổi danh sách thành chuỗi JSON. Sau đó, chúng tôi viết chuỗi JSON vào một tệp. Chúng tôi sử dụng tham số file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 2 để định dạng chuỗi JSON
Để đọc tệp JSON, chúng ta sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 3 để chuyển đổi chuỗi JSON thành danh sách từ điển
Cần sử dụng tham số file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 2 khi ghi tệp JSON. Điều này sẽ làm cho tệp JSON có thể đọc được bằng con người
import json file = open("employees.json", "r") content = file.read() employees = json.loads(content) for employee in employees: print(employee['name']) file.close()
Chúng tôi mở tệp ở chế độ đọc và đọc nội dung. Sau đó, chúng tôi sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 3 để chuyển đổi chuỗi JSON thành danh sách từ điển. Cuối cùng, chúng tôi lặp qua danh sách in tên của từng nhân viên trước khi đóng tệp
Cập nhật tệp JSON
Để cập nhật tệp JSON, trước tiên chúng ta phải đọc tệp, cập nhật nội dung tệp, sau đó ghi nội dung đã cập nhật trở lại tệp. Hãy thêm một nhân viên mới vào tệp của chúng tôi
items = ['John', 'Mary', 'Bob', 'Jane'] employees = [] def separator(list): for item in list: item += '\n' employees.append(item) separator(items) file = open('employees.txt', "w") file.writelines(employees) file.close() 0
Đầu tiên chúng tôi đọc nội dung của tập tin. Sử dụng phương thức file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 3, chúng tôi chuyển đổi chuỗi JSON thành danh sách từ điển. Sau đó chúng tôi đã thêm một nhân viên mới vào danh sách. Cuối cùng chúng tôi đã viết danh sách nhân viên được cập nhật trở lại tệp
Phần kết luận
Các tệp văn bản có thể phục vụ nhiều mục đích khác nhau. Bạn có thể sử dụng chúng để lưu trữ văn bản đơn giản và thậm chí cả dữ liệu có cấu trúc. Bạn có thể phân tích cú pháp các tệp văn bản để lấy lại dữ liệu có cấu trúc, để sử dụng trong chương trình của mình
Điều quan trọng cần lưu ý là khi phân tích cú pháp số nguyên, bạn phải chuyển đổi chúng trở lại số nguyên bằng phương pháp file = open('employees.txt', "r") content = file.readlines() employees = [] for line in content: name = line.strip() employees.append(name) print(employees) file.close() 7. Các tệp JSON có thể được sử dụng để lưu trữ dữ liệu có cấu trúc ở định dạng mà con người có thể đọc được. Chúng không cần phân tích cú pháp vì mô-đun file = open('employees.txt', "r") content = file.readlines() print("content type: " + type(content).__name__ + "\n") for line in content: print(line.strip()) file.close() 8 cung cấp một cách đơn giản để đọc và ghi các tệp JSON
Cũng cần lưu ý rằng bạn không thể dựa vào các tệp này khi làm việc với ứng dụng tốc độ cao. Trong những trường hợp như vậy, cơ sở dữ liệu sẽ là lựa chọn tối ưu