- vừa được xem lúc

Thao tác với File trong Python

0 0 63

Người đăng: Phuc Le Cong

Theo Viblo Asia

Python cung cấp các chức năng cơ bản và phương thức cần thiết để thao tác các file. Bài viết này tôi xin giới thiệu những thao tác cơ bản nhất với file trong Python.

1. Mở File

Trước khi làm việc với bất cứ file nào, bạn phải mở file đó. Để mở một file, Python cung cấp hàm open(). Nó trả về một đối tượng file mà được sử dụng với các hàm khác. Với file đã mở, bạn có thể thực hiện các hoạt động như đọc, ghi mới, ghi thêm … trên file đó.

- Cú pháp:

file object = open(file_name [, access_mode][, buffering])

Trong đó:

  • filename: Đối số file_name là một giá trị chuỗi chứa tên của các file mà bạn muốn truy cập.
  • access_mode: Các access_mode xác định các chế độ của file được mở ra như read, write, append,... Đây là thông số tùy chọn và chế độ truy cập file mặc định là read (r).
  • buffering: Nếu buffer được thiết lập là 0, nghĩa là sẽ không có trình đệm nào diễn ra. Nếu xác định là 1, thì trình đệm dòng được thực hiện trong khi truy cập một File. Nếu là số nguyên lớn hơn 1, thì hoạt động đệm được thực hiện với kích cỡ bộ đệm đã cho. Nếu là số âm, thì kích cỡ bộ đệm sẽ là mặc định.

Dưới đây là một danh sách các chế độ khác nhau của việc mở một file:

Mode Mô tả
r Mở file chỉ để đọc
r+ Mở file để đọc và ghi
rb Mở file trong chế độ đọc cho định dạng nhị phân, đây là chế độ mặc định. Con trỏ tại phần bắt đầu của file
rb+ Mở file để đọc và ghi trong định dạng nhị phân. Con trỏ tại phần bắt đầu của file
w Tạo một file mới để ghi, nếu file đã tồn tại thì sẽ bị ghi mới
w+ Tạo một file mới để đọc và ghi, nếu file tồn tại thì sẽ bị ghi mới
wb Mở file trong chế độ ghi trong định dạng nhị phân. Nếu file đã tồn tại, thì ghi đè nội dung của file đó, nếu không thì tạo một file mới
wb+ Mở file để đọc và ghi trong định dạng nhị phân. Nếu file tồn tại thì ghi đè nội dung của nó, nếu file không tồn tại thì tạo một file mới để đọc và ghi
a Mở file để ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để ghi mới
a+ Mở file để đọc và ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để đọc và ghi mới
ab Mở file trong chế độ append trong chế độ nhị phân. Con trỏ là ở cuối file nếu file này đã tồn tại. Nếu file không tồn tại, thì tạo một file mới để ghi
ab+ Mở file trong để đọc và append trong định dạng nhị phân. Con trỏ file tại cuối nếu file đã tồn tại. Nếu không tồn tại thì tạo một file mới để đọc và ghi

- Thuộc tính của File

Thuộc tính Mô tả
file.closed Trả về True nếu file đã đóng, ngược lại là False
file.mode Trả về chế độ truy cập của file đang được mở
file.name Trả về tên của file

- Ví dụ:

#!/usr/bin/python # Mở file
file = open("plc.txt", "wb")
print "Tên của file là: ", file.name
print "File có đóng hoặc không? : ", file.closed
print "Chế độ mở file : ", file.mode

Kết quả hiện thị trên màn hình:

Tên của file là: plc.txt
File có đóng hoặc không? : False
Chế độ mở file : wb

2. Đóng File

Khi bạn đã thực hiện xong các hoạt động trên file thì cuối cùng bạn cần đóng file đó. Python tự động đóng một file khi đối tượng tham chiếu của một file đã được tái gán cho một file khác. Tuy nhiên, sử dụng phương thức close() để đóng một file vẫn tốt hơn.

** - Cú pháp: **

fileObject.close()

** - Ví dụ:**

#!/usr/bin/python # Mở file
file = open("plc.txt", "r") # Đóng file
file.close()

3. Đọc File

Giả sử chúng ta có một file vidu.txt với nội dung như sau:

Hello all!
My name's Phuc.

3.1. Phương thức read

- Cú pháp:

fileObject.read([size])

Phương thức này trả về một chuỗi có kích thước bằng size. Nếu không truyền size thì toàn bộ nội dung của file sẽ được đọc.

**- Ví dụ: **

#!/usr/bin/python
f = open('vidu.txt', 'r')
str= f.read()
print ('Noi dung file la:\n', str)

Kết quả in ra màn hình:

Noi dung file la:
Hello all!
My name's Phuc.

3.2. Phương thức readline

- Cú pháp:

fileObject.readline()

Phương thức này cho phép đọc một dòng trong file và trả về chuỗi.

** - Ví dụ: **

#!/usr/bin/python
f = open('vidu.txt', 'r') line1 = f.readline()
line2 = f.readline() print ('Dòng 1: ', line1)
print ('Dòng 2: ', line2)

Kết quả in ra màn hình:

Dòng 1: Hello all! Dòng 2: My name's Phuc.

4. Ghi File

Tương tự đọc file, để ghi một file ta cần mở file bằng cú pháp để ghi và sử dụng phương thức write để ghi vào.

**- Cú pháp: **

fileObject.write(string)

Phương thức này cho phép ghi một chuỗi có nội dung là string vào vị trí của con trỏ trong file.

** - Ví dụ: **

#!/usr/bin/python # Mở file
file = open("plc.txt", "wb")
file.write( "Python là ngôn ngữ tốt nhất"); # Đóng file
file.close()

Và sau đây là nội dung bên trong file plc.txt sau khi thực hiện ghi file thành công.

Python là ngôn ngữ tốt nhất

5. Thay tên File

Phương thức rename() trong module os được sử dụng để thay tên file. Phương thức này nhận hai tham số là tên file cũ và tên file mới.

- Cú pháp:

os.rename("<tên file hiện tại>", "<tên file mới>")

- Ví dụ:

import os #Thay tên plc1.txt thành plc2.txt:
os.rename( "plc1.txt", "plc2.txt" )

6. Xóa File

Bạn có thể sử dụng phương thức remove() của module os để xóa các file với tham số là tên file bạn cần xóa.

- Cú pháp:

os.remove("<tên file>")

**- Ví dụ: **

import os # Xóa plc2.txt
os.remove("plc2.txt")

7. Ví trí File

Phương thức tell() sẽ nói cho bạn biết vị trí hiện tại bên trong file. Nói cách khác, việc đọc và ghi tiếp theo sẽ diễn ra trên các byte đó.

Phương thức seek(offset[, from]) thay đổi vị trí hiện tại bên trong file.

  • Tham số offset là chỉ số byte để được di chuyển.
  • Tham số from xác định vị trí tham chiếu mà từ đó byte được di chuyển.
    • Nếu from là 0 thì sử dụng phần đầu file như là vị trí tham chiếu

    • Nếu from là 2 thì sử dụng phần cuối file như là vị trí tham chiếu.

** Ví dụ: **

# Mở file
file = open("plc.txt", "r+")
str = file.read(10);
print "Chuỗi đã đọc là: ", str # Kiểm tra con trỏ hiện tại
vitri = file.tell();
print "Con trỏ hiện tại: ", vitri # Đặt lại vị trí con trỏ tại vị trí đầu file
vitri = file.seek(0, 0);
str = file.read(10);
print "Chuỗi đã đọc là : ", str # Đóng file
file.close()

Kết quả hiện thị trên màn hình như sau:

Chuỗi đã đọc là : Python là
Con trỏ hiện tại : 10
Chuỗi đã đọc là : Python là

8. Tham khảo

Ngoài đọc và ghi file còn khá nhiều thao tác khác để xử lý file. Bạn có thể tìm hiểu thêm về các cách thao tác xử lý file trong python khác tại đây:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 528

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 428

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 801

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 391

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 480

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 437