[Python cơ bản thường dùng trong công việc] Phần 5 : thao tác trên tập tin và thư mục
Nội dung chương này sẽ hướng dẫn các thao tác liên quan đến tập tin và thư mục.
5.1. Tập tin (File)
5.1.1. Mở file
Trước khi muốn đọc hoặc ghi file, bạn cần có thao tác mở file theo cú pháp:
fh = open(filepath, mode)
Trong đó, filepath là đường dẫn của file sẽ mở và mode là chế độ để mở. Có một số chế độ là:
r
: mở để đọc nội dung (mặc định)w
: mở để ghi nội dunga
: mở để ghi thêm nội dung vào cuối file.r+
: mở để đọc và ghi. Con trỏ nằm ở đầu file.w+
: mở để đọc và ghi. Ghi đè nếu file đã tồn tại, nếu file chưa tồn tại thì tạo file mới để ghi.a+
: mở để đọc và thêm vào cuối file. Con trỏ nằm ở cuối file. Nếu file chưa tồn tại thì tạo file mới để ghi.
Mặc định là mở file text, nếu muốn mở file nhị phân (binary) thì thêm b
, ví dụ: rb
, wb
, ab
, rb+
, wb+
, ab+
.
Ví dụ:
f1 = open('test.txt', 'r') f2 = open('access_log', 'a+')
Sau khi gọi hàm open() thành công thì sẽ trả về một object có các thuộc tính:
closed
: True nếu file đã đóngmode
: chế độ khi mở filename
: tên của filesoftspace
: cờ đánh dấu softspace khi dùng với hàmprint
Việc làm python lương cạnh tranh
5.1.2. Đọc nội dung từ file
Sau khi file đã mở ở chế độ đọc thì gọi phương thức read([count])
để trả về toàn bộ nội dung của file. Ví dụ:
f1 = open('test.txt', 'r') data = f1.read();
Hàm read()
có nhận một tham số là số lượng byte muốn đọc. Nếu không truyền vào thì sẽ đọc hết nội dung của file. Ví dụ:
f2 = open('log.txt', 'r') buffdata = f2.read(1024)
5.1.3. Ghi nội dung vào file
Nếu file được mở ở chế độ có thể ghi thì có thể dùng phương thức write()
để ghi một nội dung vào file. Ví dụ:
f2 = open('access_log', 'a+') f2.write('Attack detected')
5.1.4. Đóng file đã mở
Sau khi hoàn tất các thao tác đọc ghi file thì gọi phương thức close()
để đóng file đã mở. Ví dụ:
f1.close() f2.close()
5.1.5. Đổi tên file
Sử dụng phương thức os.rename(old, new)
để đổi tên một file. Ví dụ:
import os os.rename('test.txt', 'test_new.txt')
5.1.6. Xóa file
Sử dụng phương thức os.remove(file)
để xóa một file khỏi hệ thống. Ví dụ:
import os os.remove('test.txt')
5.2. Thư mục (Directory)
5.2.1. Tạo thư mục
Sử dụng phương thức os.mkdir(dir)
để tạo thư mục. Ví dụ:
import os os.mkdir('test')
5.2.2. Xóa thư mục
Sử dụng phương thức os.rmdir(dir)
để xóa một thư mục. Ví dụ:
import os os.rmdir('test')
5.2.3. Đọc nội dung thư mục
Sử dụng phương thức os.listdir(dir)
để lấy danh sách tập tin, thư mục của thư mục dir . Khi gọi sẽ trả về một mảng danh sách các tập tin, thư mục. Ví dụ:
import os allfiles = os.listdir('/root/downloads') print allfiles
5.3. Module os
Module os
là một module có nhiều phương thức hữu ích trong việc làm việc với các file và directory, như:
os.chdir(path)
: đổi thư mục hiện hànhos.getcwd()
: trả về thư mục hiện hànhos.chmod(path, mode)
: CHMOD một đường dẫnos.chown(path, uid, gid)
: CHOWN một đường dẫnos.makedirs(path[, mode])
: tạo đường dẫn (có recursive)os.removedirs(path)
: xóa một đường dẫn (có recursive)
Xem thêm tại https://docs.python.org/2/library/os.html
5.4. Module os.path
Module os.path
hỗ trợ các phương thức giúp thao tác nhanh chóng và thuận tiện hơn trên đường dẫn.
os.path.exists(path)
: kiểm tra 1 đường dẫn có tồn tại hay khôngos.path.getsize(path)
: lấy file size (byte)os.path.isfile(path)
: kiểm tra xem có phải là một file thông thườngos.path.isdir(path)
: kiểm tra xem có phải là một thư mụcos.path.dirname(path)
: trả về tên thư mục của pathos.path.getatime(path)
: trả về thời gian truy cập mới nhấtos.path.getmtime(path)
: trả về thời gian chỉnh sửa cuối cùngos.path.getctime(path)
: trả về thời gian chỉnh sửa cuối của metadata trên một số hệ thống. Hoặc trả về thời gian tạo file trên Windows.
Xem thêm tại https://docs.python.org/2/library/os.path.html
- V Vì sao lập trình viên BE cần phải biết Figma?
- N Nên học Front-end hay Back-end trước?
- H Học back end cần học những gì? Lộ trình cho người mới bắt đầu
- T Tầm quan trọng của Loose Coupling trong hệ thống Backend
- L Lập trình Web nên học ngôn ngữ nào là phù hợp?
- N Nên học Front-end hay Back-end? Sự khác biệt là gì?
- P Phân biệt Front End và Back End, điểm khác nhau là gì?
- T Top 7 câu hỏi phỏng vấn Backend Developer
- L Lộ trình học MySQL từ A đến Z
- Q Quản lý realm database theo hướng micro-service trong iOS