Xử lý tập tin trong Python
Category: Python
Xử lý tệp là quá trình thực hiện các thao tác trên tệp như tạo, mở, đọc, ghi và đóng tệp thông qua giao diện lập trình. Nó bao gồm việc quản lý luồng dữ liệu giữa chương trình và hệ thống tệp trên thiết bị lưu trữ, đảm bảo dữ liệu được xử lý an toàn và hiệu quả.
Mở một tập tin trong Python
Để mở một tệp, chúng ta có thể sử dụng open() hàm , yêu cầu đường dẫn tệp và chế độ làm đối số:
# Mở tệp và đọc nội dung của nó
with open('geeks.txt', 'r') as file:
Mã này mở tệp có tên geeks.txt.
Chế độ tập tin trong Python
Khi mở một tệp, chúng ta phải chỉ định chế độ mà chúng ta muốn để chỉ định những gì chúng ta muốn làm với tệp. Sau đây là bảng các chế độ khác nhau có sẵn:
Cách thức | Sự miêu tả | Hành vi |
---|---|---|
r | Chế độ chỉ đọc. | Mở tệp để đọc. Tệp phải tồn tại; nếu không, sẽ xuất hiện lỗi. |
rb | Chỉ đọc ở chế độ nhị phân. | Mở tệp để đọc dữ liệu nhị phân. Tệp phải tồn tại; nếu không, nó sẽ báo lỗi. |
r+ | Chế độ đọc và ghi. | Mở tệp để đọc và ghi. Tệp phải tồn tại; nếu không, sẽ báo lỗi. |
rb+ | Đọc và ghi ở chế độ nhị phân. | Mở tệp để đọc và ghi dữ liệu nhị phân. Tệp phải tồn tại; nếu không, nó sẽ báo lỗi. |
w | Chế độ ghi. | Mở tệp để ghi. Tạo tệp mới hoặc cắt bớt tệp hiện có. |
wb | Viết ở chế độ nhị phân. | Mở tệp để ghi dữ liệu nhị phân. Tạo tệp mới hoặc cắt bớt tệp hiện có. |
w+ | Chế độ ghi và đọc. | Mở tệp để ghi và đọc. Tạo tệp mới hoặc cắt bớt tệp hiện có. |
wb+ | Viết và đọc ở chế độ nhị phân. | Mở tệp để ghi và đọc dữ liệu nhị phân. Tạo tệp mới hoặc cắt bớt tệp hiện có. |
a | Chế độ thêm vào. | Mở tệp để thêm dữ liệu. Tạo tệp mới nếu tệp chưa tồn tại. |
ab | Thêm vào chế độ nhị phân. | Mở tệp để thêm dữ liệu nhị phân. Tạo tệp mới nếu tệp chưa tồn tại. |
a+ | Chế độ thêm và đọc. | Mở tệp để thêm và đọc. Tạo tệp mới nếu tệp chưa tồn tại. |
ab+ | Thêm và đọc ở chế độ nhị phân. | Mở tệp để thêm và đọc dữ liệu nhị phân. Tạo tệp mới nếu tệp chưa tồn tại. |
x | Chế độ sáng tạo độc quyền. | Tạo một tệp mới. Phát sinh lỗi nếu tệp đã tồn tại. |
xb | Sáng tạo độc quyền ở chế độ nhị phân. | Tạo một tệp nhị phân mới. Đưa ra lỗi nếu tệp đã tồn tại. |
x+ | Sáng tạo độc quyền với chế độ đọc và ghi. | Tạo một tệp mới để đọc và ghi. Đưa ra lỗi nếu tệp tồn tại. |
xb+ | Sáng tạo độc quyền với chức năng đọc và ghi ở chế độ nhị phân. | Tạo một tệp nhị phân mới để đọc và ghi. Đưa ra lỗi nếu tệp tồn tại. |
Mục lục
Đọc một tập tin
Viết vào một tập tin
Đóng một tập tin
Xử lý ngoại lệ khi đóng tệp
Đối với bài viết này chúng tôi sử dụng tệp văn bản có nội dung:
Hello world
GeeksforGeeks
123 456
Đọc một tập tin
Đọc một tệp có thể thực hiện được bằng file.read() , đọc toàn bộ nội dung của tệp. Sau khi đọc tệp, chúng ta có thể đóng tệp bằng file.close(), đóng tệp sau khi đọc, điều này cần thiết để giải phóng tài nguyên hệ thống.
Ví dụ: Đọc tệp ở chế độ đọc (r)
file = open("geeks.txt", "r")
content = file.read()
print(content)
file.close()
Đầu ra:
Hello world
GeeksforGeeks
123 456
Đọc một tập tin ở chế độ nhị phân (rb)
file = open("geeks.txt", "rb")
content = file.read()
print(content)
file.close()
Đầu ra:
b'Hello world\r\nGeeksforGeeks\r\n123 456'
Viết vào một tập tin
Việc ghi vào một tệp được thực hiện bằng cách sử dụng file.write() , lệnh này sẽ ghi chuỗi được chỉ định vào tệp. Nếu tệp tồn tại, nội dung của tệp sẽ bị xóa. Nếu tệp không tồn tại, một tệp mới sẽ được tạo.
Ví dụ: Ghi vào Tệp ở Chế độ Ghi (w)
file = open("geeks.txt", "w")
file.write("Hello, World!")
file.close()
Ghi vào một tệp ở chế độ Thêm (a)
Nó được thực hiện bằng cách file.write() dùng thêm chuỗi được chỉ định vào cuối tệp mà không xóa nội dung hiện có trong đó.
Ví dụ: Trong ví dụ này, chúng ta sẽ sử dụng tệp Python được tạo ở ví dụ trước.
# Mã Python để minh họa chế độ append()
file = open('geek.txt', 'a')
file.write("This will add this line")
file.close()
Đóng một tập tin
Đóng tệp là điều cần thiết để đảm bảo rằng mọi tài nguyên mà tệp sử dụng đều được giải phóng hợp lý. Việc đóng tệp sẽ đảm bảo rằng mọi thay đổi được thực hiện trên tệp đều được lưu lại.file.close()
file = open("geeks.txt", "r")
# Thực hiện các thao tác tập tin
file.close()
Sử dụng With câu lệnh
with statement được sử dụng để quản lý tài nguyên. Nó đảm bảo rằng tệp được đóng đúng cách sau khi bộ của nó hoàn tất, ngay cả khi có ngoại lệ được đưa ra. with open() là phương thức tự động xử lý việc đóng tệp sau khi khối mã được thoát, ngay cả khi xảy ra lỗi. Điều này làm giảm nguy cơ hỏng tệp và rò rỉ tài nguyên.
with open("geeks.txt", "r") as file:
content = file.read()
print(content)
Đầu ra:
Hello, World!
Appended text.
Xử lý ngoại lệ khi đóng tệp
Điều quan trọng là phải xử lý các ngoại lệ để đảm bảo các tệp được đóng đúng cách, ngay cả khi xảy ra lỗi trong quá trình xử lý tệp.
try:
file = open("geeks.txt", "r")
content = file.read()
print(content)
finally:
file.close()
Đầu ra:
Hello, World!
Appended text.
Ưu điểm của việc xử lý tệp trong Python
Tính linh hoạt: Việc xử lý tệp trong Python cho phép chúng ta thực hiện nhiều thao tác khác nhau, chẳng hạn như tạo, đọc, ghi, thêm, đổi tên và xóa tệp.
Tính linh hoạt: Việc xử lý tệp trong Python rất linh hoạt vì nó cho phép chúng ta làm việc với nhiều loại tệp khác nhau (ví dụ: tệp văn bản, tệp nhị phân, tệp CSV, v.v.) và thực hiện các thao tác khác nhau trên tệp (ví dụ: đọc, ghi, thêm, v.v.).
Thân thiện với người dùng: Python cung cấp giao diện thân thiện với người dùng để xử lý tệp, giúp việc tạo, đọc và thao tác tệp dễ dàng.
Đa nền tảng: Các hàm xử lý tệp của Python hoạt động trên nhiều nền tảng khác nhau (ví dụ: Windows, Mac, Linux), cho phép tích hợp và tương thích liền mạch.
Nhược điểm của việc xử lý tệp trong Python
Dễ xảy ra lỗi: Các thao tác xử lý tệp trong Python có thể dễ xảy ra lỗi, đặc biệt nếu mã không được viết cẩn thận hoặc nếu có vấn đề với hệ thống tệp (ví dụ: quyền tệp, khóa tệp, v.v.).
Rủi ro bảo mật : Việc xử lý tệp trong Python cũng có thể gây ra rủi ro bảo mật, đặc biệt nếu chương trình chấp nhận dữ liệu đầu vào của người dùng có thể được sử dụng để truy cập hoặc sửa đổi các tệp nhạy cảm trên hệ thống.
Độ phức tạp : Xử lý tệp trong Python có thể phức tạp, đặc biệt là khi làm việc với các định dạng tệp hoặc thao tác nâng cao hơn. Cần phải chú ý cẩn thận đến mã để đảm bảo rằng các tệp được xử lý đúng cách và an toàn.
Hiệu suất : Các thao tác xử lý tệp trong Python có thể chậm hơn các ngôn ngữ lập trình khác, đặc biệt là khi xử lý các tệp lớn hoặc thực hiện các thao tác phức tạp.
Published on Jun 20, 2025