Thay thế một dòng trong tệp python
Làm cách nào để ghi đè lên một tệp trong Python?
Show
Xử lý tệp là một thành phần thiết yếu của lập trình. Các tệp được sử dụng để lưu trữ dữ liệu vĩnh viễn. Python cung cấp phương thức lưu trữ dữ liệu chương trình và thực hiện các thao tác trên đó. Mở, viết, đọc, đóng, ghi đè và nối thêm tệp là một số ví dụ về các thao tác này Trong bài viết này, bạn sẽ tìm hiểu về các thao tác xử lý tệp khác nhau, tập trung vào cách ghi đè tệp trong Python Trước khi tiếp tục, hãy xem xét các nguyên tắc cơ bản Tệp trong Python là gì?Tệp là một tập hợp dữ liệu được lưu trữ dưới dạng một đơn vị trên đĩa. Nó được xác định bằng tên tệp và phần mở rộng tệp. Mọi thứ được lưu trữ dưới dạng tệp, có thể là trang tính excel, tài liệu, v.v. Chúng tôi thường xử lý hai loại Tệp trong Python
Trong bài viết này, chúng tôi sẽ tập trung vào các tệp văn bản
Chắc hẳn bạn đang thắc mắc, nhu cầu về Tệp trong Python là gì? Cần tệp trong PythonDưới đây là một vài lý do làm nổi bật sự cần thiết của các tệp trong khi lập trình
Bây giờ, bạn đã học về tệp và lý do tại sao chúng ta cần chúng, hãy xem Hoạt động của tệp Thao tác tệp trong PythonCác thao tác với tệp là các thao tác có thể thực hiện trên một tệp. Chúng bao gồm các hoạt động được thực hiện bởi người dùng bằng các lệnh Python (hoặc bất kỳ ngôn ngữ lập trình nào khác) Một vài thao tác tập tin cơ bản được liệt kê dưới đây
Có lẽ bạn đang tự hỏi tại sao bạn cần đóng tệp theo cách thủ công. Không phải Trình thu gom rác của Python có khả năng thực hiện tác vụ sao? Garbage Collectors dọn dẹp các đối tượng không được ước tính. Bạn không nên dựa vào trình thu gom rác để đóng tệp. Nó có thể dẫn đến mất dữ liệu hoặc lỗi. Để tìm hiểu thêm về Trình thu gom rác, hãy xem Xóa biến trong Python Hãy xem bên dưới để biết một vài thao tác tệp khác Chế độ truy cập tệp trong PythonChúng chỉ định cách tệp sẽ được sử dụng sau khi được mở. Chế độ truy cập tệp quy định loại hoạt động có thể được thực hiện trên tệp. Cụ thể hơn, họ chỉ định vị trí của "trình xử lý tệp" Trình xử lý tệp giống như một con trỏ cho biết vị trí từ đó dữ liệu sẽ được đọc hoặc ghi trong tệp. Bạn cũng có thể cho rằng đó là một con trỏ, để hiểu rõ hơn Các chế độ truy cập tệp rất quan trọng để tìm hiểu vì chúng đóng vai trò chính trong khi xử lý tệp. Họ cho biết khả năng truy cập tệp trong khi thực hiện bất kỳ thao tác tệp nào. Vì vậy, trước khi chuyển sang ghi đè tệp trong Python, hãy tìm hiểu rõ hơn về các chế độ truy cập tệp trong Python Python có sáu Chế độ truy cập tệp. Chúng như sau Sr. Không Chế độ truy cập (Thao tác tệp) Mô tả1. Chỉ đọc ('r')Chế độ mặc định. Mở một tệp bằng Python để đọc. (Tăng lỗi I\O nếu tệp không tồn tại. ) 2. Read & Write ('r+')Với điều này, bạn có thể đọc cũng như viết trong tệp. 3. Chỉ ghi ('w') Được sử dụng để ghi vào tệp. (Thao tác này tạo tệp mới nếu tệp không tồn tại). Điều này ghi đè lên một tập tin hiện có. 4. Viết & Đọc ('w+')Được sử dụng để viết cũng như đọc một tệp đã mở trong Python5. Append Only ('a') Được sử dụng để chèn dữ liệu vào cuối tệp đã mở. Ở đây, dữ liệu hiện có sẽ không bị cắt bớt. 6. Nối và Đọc ('a+') Được sử dụng để mở tệp để ghi (ở cuối) và đọcCác phương thức truy cập được đề cập cùng với tên tệp trong hàm open() Cú pháp để mở một tập tin là f = open("FilePath", "chế độ truy cập") Tệp có thể nằm trong cùng một thư mục hoặc khác thư mục. Do đó, bạn phải tính đến điều này khi chỉ định vị trí tệp. Nó có thể là Đường dẫn tuyệt đối (bắt đầu từ thư mục gốc) hoặc Đường dẫn tương đối (nằm trong cùng một thư mục) Hãy lấy một ví dụ về cách mở tệp trong Python (Ghi chú. Tôi đã tạo một tệp "favtutor. txt" trong cùng thư mục với tệp Python của tôi (temp. py)) # Program: Overwriting a file in Python Lưu ý rằng trình xử lý tệp 'f' gọi phương thức read() để đọc (lấy) các dòng từ tệp
đầu ra This is a favtutor article. Article topic: Overwrite files in Python
Bạn sẽ nhận thấy rằng tệp "favtutor. txt" đã được tạo trước khi chúng tôi gọi hàm open(). Hãy thử mở một tệp khác (không tồn tại) bằng Python # Program: Overwriting a file in Python
đầu ra Traceback (most recent call last): File ".\temp.py", line 4, in <module> f = open("abc.txt", "r") FileNotFoundError: [Errno 2] No such file or directory: 'abc.txt'
Nó tạo ra một lỗi cho biết không có bất kỳ tệp nào có tên 'abc. txt' Hãy thử mở tệp bằng chế độ "chỉ ghi". Bạn sẽ nhận thấy sự khác biệt cơ bản giữa chế độ chỉ đọc và chỉ ghi Mặc dù lỗi đầu tiên tạo ra lỗi trên một tệp không tồn tại, nhưng lỗi sau sẽ tạo một tệp bằng lệnh Bây giờ chúng ta đã học được một số kiến thức cơ bản về Xử lý tệp trong Python, hãy chuyển sang thao tác với tệp - "ghi đè" một tệp trong Python Ghi đè tệp bằng Python là gì?Ghi đè là quá trình thay thế dữ liệu cũ bằng dữ liệu mới. Nó liên quan đến việc thay đổi dữ liệu được viết trước trong một tệp. Ghi đè tệp có thể hiểu là xóa tệp hiện có và thay bằng tệp mới có cùng tên Bạn không được nhầm lẫn giữa 'ghi đè' và 'xóa' một tệp trong Python với các thao tác giống nhau Một tệp đã xóa có thể được khôi phục từ bộ nhớ của máy tính, tuy nhiên, một tệp bị ghi đè thì không thể. Điều này xảy ra vì một tệp bị ghi đè sẽ thay thế nội dung gốc của tệp đó, khiến tệp bị thay đổi về mặt vật lý. Do đó, việc truy xuất dữ liệu trong trường hợp này có ít xác suất hơn Tham khảo hình ảnh bên dưới để hiểu rõ hơn về Ghi đè tệp trong Python Trước khi chuyển sang các cách ghi đè tệp bằng Python, hãy nhớ rằng đôi khi "ghi đè tệp bằng Python" được coi là tương tự như "thay thế một vài dòng trong tệp". Nhưng nó khác với việc thêm dữ liệu vào một tệp Làm cách nào để ghi đè lên một tệp trong Python?Nhu cầu ghi đè thường xảy ra khi bạn cần thay đổi hoàn toàn một tệp trong Python. Các phương thức bên dưới chứa cả hai phương thức ghi đè lên toàn bộ tệp cũng như các phương thức ghi đè lên một vài dòng trong Python Vậy hãy bắt đầu 01) Chỉ sử dụng chế độ truy cập tệp ('w')Chế độ truy cập tệp 'chỉ ghi' ('w') cho phép bạn chỉ ghi vào tệp. (Nhớ chỉ định chế độ truy cập file trong hàm open(). ) Python bao gồm chức năng ghi để ghi vào tệp Nếu tệp chứa bất kỳ nội dung nào, nó sẽ bị ghi đè hoàn toàn bởi bất kỳ thứ gì bạn viết trên tệp đã mở. Tất cả dữ liệu trước đó trong tệp sẽ bị mất và không thể khôi phục được trong nhiều trường hợp khi bạn ghi đè tệp bằng phương pháp này Hãy lấy một ví dụ để hiểu rõ hơn Cân nhắc việc ghi đè lên một tệp có tên là favtutor. txt. Tệp đó phải được mở ở chế độ ghi và được gán cho trình xử lý tệp 'f. ' Trình xử lý tệp 'f' có thể được sử dụng để thực hiện thao tác write() Đây là ảnh chụp nhanh của tệp đã tồn tại Ghi đè tệp bằng Python # Program: Overwriting a file in Python
Vì chúng tôi không thể đọc tệp (vì tệp ở chế độ chỉ ghi), đây là ảnh chụp nhanh của tệp sau khi ghi đè- đầu ra Sử dụng chế độ truy cập chỉ ghi là cách đơn giản nhất để ghi đè lên tệp trong Python 02) Sử dụng hệ điều hành. loại bỏ() chức năngĐây là một phương pháp khác để ghi đè lên một tệp hoàn chỉnh trong Python. Điều này bao gồm việc xóa tệp hiện có và tạo một tệp mới có cùng thông tin đăng nhập. Mặc dù nó gián tiếp ghi đè lên tệp, nhưng bạn không nên sử dụng phương pháp này thường xuyên. Điều này có thể thay đổi số inode của tệp Inodes lưu trữ thông tin về tệp và thư mục (thư mục), chẳng hạn như quyền sở hữu tệp, chế độ truy cập (đọc, ghi, thực thi quyền) và loại tệp. Mỗi tệp được kết nối với một inode, có thể nhận dạng bằng một số nguyên được gọi là số i hoặc số inode Lưu ý rằng điều này yêu cầu nhập mô-đun os Hãy thử xóa một tệp (abc. txt) bằng Python để ghi đè lên nó # Program: Overwriting a file in Python
đầu ra Traceback (most recent call last): File ".\temp.py", line 5, in <module> os.remove("abc.txt") FileNotFoundError: [WinError 2] The system cannot find the file specified: 'abc.txt'
tập tin abc. txt không tồn tại, do đó chúng tôi gặp phải lỗi khi cố xóa tệp đó. Trước khi xóa một tập tin, bạn nên kiểm tra xem tập tin đó có tồn tại hay không. Nếu tệp không tồn tại, nó sẽ báo lỗi. Do đó, để kiểm tra xem tệp có tồn tại hay không, mô-đun os có os. đường dẫn. hàm tồn tại () (Một lần nữa trên một tập tin không tồn tại. ) Thí dụ # Program: Overwriting a file in Python
đầu ra ________số 8
Khối if-else giúp chúng ta không gặp lỗi. Chúng tôi cũng có thể mở tệp bằng chế độ truy cập 'w+' hoặc 'w' trong khối khác. Các chế độ này tạo một tệp mới nếu tệp không tồn tại Bây giờ, hãy lấy một ví dụ về ghi đè lên một tệp hiện có trong Python bằng os. loại bỏ() chức năng # Program: Overwriting a File in Python # import the os module import os # check whether the file exists if os.path.exists("favtutor.txt"): # delete the file os.remove("favtutor.txt") else: # if the file does not exist. print("File does not exists. File needs to be created.") # create/open the file # using 'w+' for read & write f = open("favtutor.txt", "w+") f.write("Overwrite a file in Python.") # close the file f.close() # To read the contains of the file # open the file in read mode f = open("favtutor.txt", "r") print(f.read()) f.close()
đầu ra This is a favtutor article. Article topic: Overwrite files in Python0
Tôi đã mở tệp ở cuối để đọc nội dung của tệp. Lưu ý rằng bạn cần phải đóng và mở lại một tệp để thay đổi chế độ truy cập của nó 03) Sử dụng hàm seek() và truncate()Phương pháp này có thể được sử dụng để ghi đè lên một tệp (hoàn toàn hoặc một dòng cụ thể) trong Python. Phương pháp này bao gồm hai chức năng
Trong khi gọi hàm seek(), bạn có thể thêm dữ liệu của mình vào tệp bằng cách sử dụng hàm write(), sau đó cắt bớt tệp ở cuối Thí dụ This is a favtutor article. Article topic: Overwrite files in Python1
đầu ra This is a favtutor article. Article topic: Overwrite files in Python2
Lưu ý rằng tệp bị ghi đè bởi dữ liệu mới 04) Sử dụng phương thức thay thế()Phương pháp này được ghi đè lên một giai đoạn cụ thể trong một tệp hiện có. Một phần, phương pháp ghi đè tệp này trong Python liên quan đến việc sử dụng chế độ 'chỉ ghi'. Ở đây, chúng tôi lưu trữ dữ liệu trong một biến khác, thực hiện một vài thay thế trong đó, sử dụng phương thức thay thế (). Biến mới này sau đó được gọi để ghi đè lên tệp Thí dụ This is a favtutor article. Article topic: Overwrite files in Python3 Đầu tiên, bạn cần đọc tệp để lưu dữ liệu vào một biến khác (ở đây, biến có tên là nội dung). Sau đó, phương thức thay thế () được áp dụng cho dữ liệu được lưu trữ. Phương pháp này yêu cầu đối sánh trình tự để thay thế dữ liệu hiện có bằng một dữ liệu khác.
đầu ra This is a favtutor article. Article topic: Overwrite files in Python4
Lưu ý cách các từ "Tệp" được 'ghi đè' bởi "Dữ liệu". Phương pháp trên cũng trả lời câu hỏi - "Làm cách nào để thay thế một chuỗi trong tệp bằng Python?" 05) Sử dụng lại. hàm phụ()Đây là một cách khác để ghi đè lên một tệp trong Python. Nó tương tự như thay thế dữ liệu trong một tập tin. Phương pháp này yêu cầu hàm sub() của mô-đun Biểu thức chính quy (mô-đun re). Nhớ lại rằng hàm sub() trả về một chuỗi trong đó chuỗi thay thế sẽ thay thế tất cả các lần xuất hiện khớp của mẫu đã cho. Do đó, thao tác này cũng sẽ so khớp tuần tự các ký tự để tìm ra kết quả khớp Bạn cũng sẽ gặp một số chức năng mới ở đây
Vì vậy, các hàm write_text() và read_text() không cần khai báo lệnh đóng mở file riêng Hãy lấy một ví dụ để ghi đè lên một tệp trong Python bằng mô-đun re This is a favtutor article. Article topic: Overwrite files in Python5
đầu ra This is a favtutor article. Article topic: Overwrite files in Python6
Lưu ý rằng dữ liệu (chuỗi ở đây) phân biệt chữ hoa chữ thường. Vì hàm sub() khớp với văn bản nên nó chỉ ghi đè 'tệp' chứ không phải 'Tệp' trong ví dụ trên Phần kết luậnTrong bài viết này, chúng ta đã nói về một số cách dễ nhất để ghi đè lên một tệp trong Python. Ngoài các phương pháp trên, còn có một phương pháp khác để ghi đè lên tệp trong Python Nó yêu cầu di chuyển một tệp (giả sử abc. txt) vào thư mục có tệp cùng tên (abc. txt, tệp sẽ bị ghi đè). Phương pháp này sử dụng mô-đun Shutil. Mặc dù điều đó không được khuyến khích, vì về cơ bản, nó thay thế một tệp bằng một tệp khác với sự trợ giúp của các quy ước đặt tên mặc định trong máy tính Mặc dù tôi chủ yếu sử dụng các chế độ 'chỉ đọc' và 'chỉ ghi', nhưng bạn nên thử các phương pháp này với các chế độ truy cập tệp khác. Bạn có thể ngạc nhiên với kết quả. mã hóa hạnh phúc |