Xử lý tệp với Mô-đun hệ điều hành
Ngoài đối tượng Tệp được trả về bởi open()chức năng, các hoạt động IO tệp cũng có thể được thực hiện bằng cách sử dụng thư viện tích hợp sẵn của Python có mô-đun os cung cấp các chức năng hữu ích phụ thuộc vào hệ điều hành. Các hàm này thực hiện các thao tác đọc / ghi mức thấp trên tệp.
Các open()chức năng từ mô-đun os tương tự như open () tích hợp sẵn. Tuy nhiên, nó không trả về một đối tượng tệp mà là một bộ mô tả tệp, một số nguyên duy nhất tương ứng với tệp đã mở. Các giá trị 0, 1 và 2 của trình mô tả tệp đại diện cho các luồng stdin, stdout và stderr. Các tệp khác sẽ được cung cấp bộ mô tả tệp tăng dần từ 2 trở đi.
Như trong trường hợp của open() chức năng tích hợp, os.open()chức năng cũng cần chỉ định chế độ truy cập tệp. Bảng sau liệt kê các chế độ khác nhau như được định nghĩa trong mô-đun hệ điều hành.
Sr.No. | Mô-đun Os & Mô tả |
---|---|
1 |
os.O_RDONLY Chỉ mở để đọc |
2 |
os.O_WRONLY Chỉ mở để viết |
3 |
os.O_RDWR Mở để đọc và viết |
4 |
os.O_NONBLOCK Không chặn khi mở |
5 |
os.O_APPEND Nối mỗi lần viết |
6 |
os.O_CREAT Tạo tệp nếu nó không tồn tại |
7 |
os.O_TRUNC Cắt bớt kích thước thành 0 |
số 8 |
os.O_EXCL Lỗi nếu tạo và tệp tồn tại |
Để mở một tệp mới để ghi dữ liệu trong đó, hãy chỉ định O_WRONLY cũng như O_CREATchế độ bằng cách chèn toán tử pipe (|). Hàm os.open () trả về bộ mô tả tệp.
f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)
Lưu ý rằng, dữ liệu được ghi vào tệp đĩa dưới dạng chuỗi byte. Do đó, một chuỗi bình thường được chuyển đổi thành chuỗi byte bằng cách sử dụng hàm encode () như trước đó.
data="Hello World".encode('utf-8')
Hàm write () trong mô-đun os chấp nhận chuỗi byte này và bộ mô tả tệp.
os.write(f,data)
Đừng quên đóng tệp bằng hàm close ().
os.close(f)
Để đọc nội dung của tệp bằng hàm os.read (), hãy sử dụng các câu lệnh sau:
f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8'))
Lưu ý rằng, hàm os.read () cần bộ mô tả tệp và số byte được đọc (độ dài của chuỗi byte).
Nếu bạn muốn mở một tệp cho các thao tác đọc / ghi đồng thời, hãy sử dụng chế độ O_RDWR. Bảng sau đây cho thấy các chức năng quan trọng liên quan đến hoạt động tệp trong mô-đun os.
Sr.No | Chức năng & Mô tả |
---|---|
1 |
os.close(fd) Đóng bộ mô tả tệp. |
2 |
os.open(file, flags[, mode]) Mở tệp và đặt các cờ khác nhau theo cờ và có thể cả chế độ của nó theo chế độ. |
3 |
os.read(fd, n) Đọc nhiều nhất n byte từ bộ mô tả tệp fd. Trả về một chuỗi chứa các byte đã đọc. Nếu đến cuối tệp được tham chiếu bởi fd, một chuỗi trống sẽ được trả về. |
4 |
os.write(fd, str) Ghi chuỗi str vào bộ mô tả tệp fd. Trả về số byte thực sự được viết. |