Làm cách nào để cập nhật tệp văn bản trong python?

Cập nhật dữ liệu từ tệp trong lập trình Python

Python cung cấp cho chúng ta đọc , ghi , < . Không có bất kỳ hàm nào được xác định trước trong python để cập nhật dữ liệu từ một tệp. Chúng tôi sử dụng logic của riêng mình để cập nhật dữ liệu từ tệp văn bản của mình. delete and append functions in file handling. There is no any pre defined function in python to update data from a file. We use our own logic to update data from our text file.

Cập nhật dữ liệu từ tệp. Để cập nhật bất kỳ dữ liệu nào từ một tệp, trước hết chúng tôi cần có một tệp chứa một số dữ liệu được ghi vào đó. Vì vậy, giả sử tôi có một tệp có tên là “test. txt”. Bạn có thể xem hình ảnh bên dưới để xem dữ liệu được ghi vào tệp

tệp. kiểm tra. txt

Trong hình ảnh đã cho ở trên, chúng tôi có một tệp có các mục nhập của bốn sinh viên. Chúng tôi đã lưu trữ cuộn không. , tên, lớp và phần được phân tách bằng dấu “~”

Chúng tôi sẽ viết mã để cập nhật bất kỳ một bản ghi nào từ tệp của chúng tôi và phần còn lại của dữ liệu của chúng tôi để không thay đổi

Phương pháp giải quyết vấn đề. Cho đến bây giờ chúng ta đã thảo luận về cách đọc, ghi và cập nhật dữ liệu từ một tệp. Chúng tôi sẽ giải quyết vấn đề của mình bằng cách sử dụng các chức năng này và chúng tôi cũng sử dụng một số khái niệm cốt lõi về lập trình Python.

Dung dịch.  


Giải thích chương trình. Ở đây tôi đã hoàn thành chương trình hoàn chỉnh trong 14 đến 15 dòng mã. Tôi sẽ giải thích cho bạn từng dòng mã một cách chi tiết. Chúng tôi sẽ cập nhật hồ sơ học sinh có số thứ tự. 20

Bước 0. Ở đây tôi đã nhập mô-đun hệ điều hành. Chúng tôi đã sử dụng các chức năng của hệ điều hành như remove[] và rename[] đã được xác định trước trong thư viện hệ điều hành. Tham khảo dòng 13 và 14

Bước 1. Ở đây tôi đã tạo đối tượng tệp [fh_main]. Chúng tôi đã mở “văn bản. txt” ở chế độ đọc

Bước 2. Ở đây chúng tôi đã mở tệp trống mới tức là. "nhiệt độ. txt” là tệp văn bản tạm thời của chúng tôi. Chúng tôi sẽ sử dụng tệp này để ghi dữ liệu của chúng tôi

Bước 3. Chúng tôi sẽ tìm kiếm dữ liệu mà chúng tôi muốn cập nhật theo số cuộn. Vì vậy, chúng tôi sẽ nhận đầu vào từ người dùng và lọc chi tiết sinh viên theo số cuộn của nó

Bước 4. Ở đây chúng tôi đã lấy một biến s = ‘ ‘. Lưu ý.   Ở đây ‘s’ không phải là biến rỗng. Nó đang lưu trữ một khoảng trắng và khoảng trắng có nghĩa là một giá trị chuỗi.

Bước 15. Ở đây chúng tôi đã sử dụng vòng lặp while[], nó sẽ tiếp tục thực thi trong khi điều kiện vẫn đúng. Quan trọng. Chúng tôi đã chuyển 's' trong vòng lặp while và 's' đang lưu trữ một khoảng trắng có nghĩa là một số giá trị. Nếu chúng ta sử dụng một biến lưu trữ một số giá trị bên trong vòng lặp while thì nó đóng vai trò là Đúng và nếu 's' không lưu trữ giá trị thì nó đóng vai trò là Sai.
Chúng ta muốn chương trình của mình đi vào bên trong vòng lặp while, đó là lý do tại sao chúng ta định nghĩa 's' theo cách nó hoạt động như True. Nếu chúng ta bỏ trống biến thì nó sẽ không vào trong vòng lặp while mà nhảy thẳng đến câu lệnh số 12.

Bước 5. Sau khi vào bên trong while[] câu lệnh đầu tiên được thực thi là fh_main. readline[] . Mã này đọc từng dòng bên trong tệp và tiếp tục lưu trữ trong biến 's'.

Bước 6. Ở đây chúng tôi đã lấy biến 'L' và giá trị được lưu trữ của 's' sau khi tách từ dấu '~'. Hàm split[] làm gì, nó chỉ phân tách từng từ bằng ký tự được chỉ định, tức là '~'. Nó lưu trữ từng giá trị ở dạng danh sách tức là. []

Bước 7. Ở đây chúng tôi đang kiểm tra độ dài của s > 0. Chúng ta chỉ nhập vào bên trong câu lệnh if nếu điều kiện là True. Độ dài của s phải luôn lớn hơn khi chúng ta đang đọc các giá trị và lưu trữ bên trong s. Vì vậy, 's' luôn lưu trữ một số giá trị và độ dài của s cũng lớn hơn 0

Nhưng khi chúng tôi đến cuối dòng thì s không lưu trữ bất kỳ giá trị nào vì không còn dữ liệu nữa và khoảng thời gian đó sẽ trở thành 0 và quá trình thực hiện tiếp theo sẽ tự động dừng

Bước 8. Ở đây, chúng tôi đang kiểm tra bên trong danh sách của mình 'L' ở chỉ số 0, giá trị giống như người dùng đang tìm kiếm để cập nhật. Nếu số cuộn do người dùng nhập nằm ở chỉ số 0 của L trong bất kỳ mục nhập nào thì nó sẽ chuyển sang thao tác tiếp theo nếu không việc thực thi sẽ chuyển sang phần khác [11]. Ở đây tại phần 11, chúng tôi chỉ viết cùng một dữ liệu trong 'temp. txt’ mà chúng ta đang đọc từ ‘text. tập tin txt

Bước 9. Ở đây chúng tôi đang lấy thông tin đầu vào từ người dùng sau khi người dùng đủ điều kiện cập nhật hồ sơ. Các bản ghi do người dùng nhập ở đây phải được ghi bên trong 'temp. tập tin txt

Ghi chú.  Ở đây bước 8 và bước 9 rất quan trọng, vui lòng đọc lại một lần nữa và cố gắng hiểu kỹ. Chúng tôi thực sự không làm bất cứ điều gì với 'văn bản' của chúng tôi. tập tin txt. chúng tôi đang ghi dữ liệu ở dạng 'tạm thời'. txt’ trong mọi trường hợp. Người dùng có thể cập nhật một bản ghi cùng một lúc.

để một bản ghi được viết bên trong tạm thời. txt và phần còn lại của các bản ghi sẽ không nhập vào bên trong vòng lặp if và chuyển trực tiếp sang điều kiện khác và bên trong điều kiện khác, chúng tôi cũng đang làm tương tự vì chúng tôi chỉ viết chi tiết đó trong tệp 'temp. tập tin txt

Trên thực tế, chúng tôi đã tạo một tệp mới lưu trữ các giá trị được cập nhật cũng như các dữ liệu khác có sẵn trong 'văn bản. tập tin txt. Vậy là mục đích cập nhật hồ sơ của chúng ta đã xong.  

Bước 10. Ở đây sau khi lấy các giá trị được cập nhật từ người dùng, chúng tôi đã viết giá trị được cập nhật đó bên trong 'temp. tập tin txt

Bước 11. Chỉ cần nhìn vào bước 8. Nếu số cuộn nhập do người dùng nhập không tồn tại trong tệp của chúng tôi thì thay vì nhập vào bên trong nếu có điều kiện, nó sẽ nhảy trực tiếp sang phần khác, tức là. bước 11 và ở đây chúng tôi đang viết các bản ghi tương tự trong 'temp. tập tin txt

Bước 12. Nếu chúng tôi thực hiện bất kỳ thay đổi nào trong tệp của mình và muốn lưu hoặc cam kết. Nó là cần thiết để đóng các tập tin đó. Đó là lý do tại sao để thực hiện tất cả các thay đổi, chúng tôi đã đóng tất cả các tệp của mình tại đây

Bước 13. Bây giờ chúng tôi có hai tệp 'temp. txt', đây là tệp mới lưu trữ các bản ghi được cập nhật và 'văn bản. txt’ lưu trữ các bản ghi cũ chưa được cập nhật. Vì vậy, bây giờ chúng tôi không cần tệp cũ của mình vì tệp này không được sử dụng. Do đó sử dụng os. remove[] chúng tôi đã xóa tệp 'văn bản. txt'

Bước 14. Ở đây sau khi xóa 'văn bản cũ. txt', chúng tôi đã đổi tên tệp mới của mình thành 'temp. txt' dưới dạng 'văn bản. tập tin txt. Do đó, chúng tôi đã cập nhật 'văn bản' mới. tập tin txt

Ghi chú. Ổn mà. Nếu bạn là người mới bắt đầu hoàn thành lập trình, bạn có thể gặp một số khó khăn. Khác nếu bạn có một chút hương vị trước đây thì nó không quá khó

Chủ Đề