Học Python từ con số 0 (Phần 3): Thao tác với tệp tin và thư mục

Tệp tin (File)

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 dung
  • a: Mở để 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, rb+... 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ả ra một object có thuộc tính:

  • closed: true nếu file đã đóng
  • mode: chế độ khi mở file
  • name: tên của file
  • softspace: cờ đánh dấu softspace khi dùng với hàm print

Đọ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 khong truyền vào thì sẽ đọc hết nội dung của file. Ví dụ:

fe = open('log.txt', 'r')
buffdata = f2.read(1024)

Ghi nội dung vào file

Nếu file được mở ở chế độ có thể ghi thì có thể dùng write() để ghi một nội dung vào file. Ví dụ:

f2 = open('access_log', 'a+')
f2.write('Attack detected')

Đó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()

Đổ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')

Xoá file

Sử dụng os.remove(file) để xoá file khỏi hệ thống

import os
os.remove('test.txt')

Thư mục (Directory)

Tạo thư mục

Sử dụng phương thức os.mkdir(dir) để taọ thư mục. Ví dụ:

import os
os.mkdir('test')

Xoá thư mục

Sử dụng os.rmdir(dir) để xoá một thư mục. Ví dụ

import os
os.rmdir("test")

Đọc nội dung thư mục

Sử dụng 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 các danh sách tập tin, thư mục. Ví dụ:

import os
allfiles = os.listdir('/root/downloads')
print allfiles

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ành
  • os.getcwd() trả về thư mục hiện hành
  • os.chmod(path, mode): CHMOD một đường dẫn
  • os.chown(path, uid, gid): CHOWN một đường dẫn
  • os.makedirs(path[path[, mode]): tạo đường dẫn (có recursive)
  • os.removedirs(path): xoá một đường dẫn (có recursive)

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 một đường dẫn có tồn tại hay không
  • os.path.getfile(path): lấy file size (byte)
  • os.path.isfile(path): kiểm tra xem có phải là file thông thường không
  • os.path.isdir(path): kiểm tra xem có phải là một thư mục
  • os.path.dirname(path): trả về tên thư mục của path
  • os.path.getatime(path): trả về thời gian truy cập mới nhất
  • os.path.getmtime(path): trả về thời gian chỉnh sửa cuối cùng
  • os.path.getctime(path): trả về thời gian chỉnh sưả cuối của metadata trên hệ thống. Hoặc trả về thời gian tạo trên Windows

Cảm ơn bạn đã theo dõi bài viết của tôi. Ở bài viết tiếp theo trong seri tôi sẽ giới thiệu một thứ rất thú vị trong Python. Hãy cùng theo dõi nhé !