Cách Ghi File Trong Python Nhanh Và Hiệu Quả
Trong bài viết này, MCI sẽ hướng dẫn bạn cách làm việc với file trong Python, gồm 5 thao tác chính: Mở file trong Python, Đọc file trong Python, Ghi file trong Python, Thay tên file trong Python, Đóng file trong Python
Nội dung bài viết
1. File là gì?
File được hiểu là những tệp hay tập tin chứa các thông tin, được đặt tên lưu trữ trong bộ nhớ của thiết bị. Khi cần đọc hoặc ghi file trong python, chúng ta cần phải mở file ra và sau đó thực hiện các thao tác mong muốn. Khi không cần sử dụng nữa, file cần được lưu và đóng lại để các thông tin được gắn với file và giải phóng file.
Trong bài viết này, MCI sẽ hướng dẫn bạn cách làm việc với file trong Python, gồm 5 thao tác chính:
- Mở file trong Python
- Đọc file trong Python
- Ghi file trong Python
- Thay tên file trong Python
- Đóng file trong Python
Top list các IDE cho Python tốt nhất 2021
2. Mở file
Để mở một file trong Python, chúng ta thực hiện theo cú pháp sau:
open(filename,mode)
Định nghĩa:
- fileName: tên của tệp/tập tin cần mở.
- mode: quy định cách thức mở tệp/tập tin. Khi mode bị bỏ qua thì mặc định sẽ là ký tự r.
Tổng hợp các mode và mô tả của từng mode khi mở file trong Python như sau:
MODE | MÔ TẢ VỀ MODE |
r | Mở file với quyền chỉ đọc |
r+ | Mở file với quyền được đọc và ghi |
rb | Mở file với quyền đọc cho định dạng nhị phân |
r+b hoặc rb+ | Mở file với quyền đọc và ghi trong định dạng nhị phân |
w | Mở file với quyền để ghi file trong python. Nếu file không tồn tại thì sẽ tạo mới file và ghi nội dung, nếu file đã tồn tại thì sẽ bị cắt bớt (truncate) và ghi đè lên nội dung cũ |
w+ | Mở file với quyền đọc và ghi file trong python. Hệ thống tự tạo file mới và ghi nội dung nếu file đó chưa tồn tại, nếu file đó đã tồn tại, hệ thống sẽ ghi đè file |
wb | Mở file với quyền ghi cho dạng nhị phân. Hệ thống tự tạo file mới và ghi nội dung nếu file đó chưa tồn tại, nếu file đó đã tồn tại, hệ thống sẽ ghi đè file |
wb+ hoặc w+b | Mở file với quyền đọc và ghi cho dạng nhị phân. Hệ thống tự tạo file mới và ghi nội dung nếu file đó chưa tồn tại, nếu file đó đã tồn tại, hệ thống sẽ ghi đè file |
a | Mở file với quyền tiếp tục ghi file trong python. Nếu file đã tồn tại rồi thì nó sẽ tiếp tục ghi nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó |
a+ | Mở file với quyền đọc và ghi tiếp. Hệ thống tự tạo file mới và ghi nội dung nếu file đó chưa tồn tại, nếu file đó đã tồn tại, hệ thống sẽ ghi tiếp nội dung vào cuối file |
ab | Mở file với quyền ghi tiếp ở dạng nhị phân. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó. |
ab+ hoặc a+b | Mở file với quyền đọc và ghi tiếp ở dạng nhị phân. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó. |
x | Mở file với quyền ghi file trong python. Tạo file tồn tại duy nhất trong dự án để ghi file trong python, nếu file đã tồn tại, chương trình sẽ báo lỗi |
x+ | Mở file với quyền đọc và ghi file trong python. Tạo file tồn tại duy nhất trong dự án để ghi file trong python, nếu file đã tồn tại, chương trình sẽ báo lỗi |
xb | Mở file với quyền ghi dạng nhị phân. Tạo file tồn tại duy nhất trong dự án để ghi file trong python, nếu file đã tồn tại, chương trình sẽ báo lỗi |
xb+ hoặc x+b | Mở file với quyền đọc và ghi dạng nhị phân. Tạo file tồn tại duy nhất trong dự án để ghi file trong python, nếu file đã tồn tại, chương trình sẽ báo lỗi |
b | Mở file ở chế độ nhị phân |
t | mở file dưới dạng văn bản |
3. Đọc file
Sau khi đã mở được file, chúng ta cần “đọc” nội dung của các file đó để sử dụng cho các mục đích tiếp theo. Để đọc file trong Python, chúng ta có thể sử dụng nhiều loại hàm, trong đó có 4 loại hàm mà chúng tôi sẽ giới thiệu đến bạn dưới đây.
Giả sử chúng ta có file tên “mcivietnam.txt" có nội dung:
Hello my friend!
Welcome to mcivietnam
Tìm hiểu tên và chức năng các loại hàm trong python
Và chúng ta sẽ đọc file này theo 1 trong 4 cách dưới đây:
3.1 Đọc file với hàm read
Cú pháp để đọc 1 file trong Python với hàm read như sau:
f.read([size])
Hàm read([size]) sẽ đọc nội dung của file và trả về dữ liệu có kích thước bằng tham số size, nếu bạn bỏ qua giá trị của tham số này, hàm sẽ hết file hoặc nếu file có kích thước quá lớn, nó sẽ đọc đến khi giới hạn của bộ nhớ cho phép.
Ví dụ: Bạn cần đọc và in nội dung của file mcivietnam.txt ra, bạn thực hiện như sau:
f=open('mcivietnam.txt','r')
str=f.read()
print('nội dung file của bạn là:\n',str)
Kết quả trả về sẽ là:
Nội dung file của bạn là:
Hello my friend!
Welcome to mcivietnam.
3.2 Đọc file với hàm readline
Cú pháp để đọc từng dòng trong file với hàm readline trong python như sau:
f.readline();
Cú pháp này cho phép bạn đọc một dòng trong file và trả và chuỗi dữ liệu tương ứng.
Ví dụ: Bạn cần đọc dòng 1 và 2 trong file “mcivietnam.txt" ở trên, chúng ta sẽ làm như sau:
f=open('mcivietnam.txt','r')
line1=f.readline()
print('Dòng 1 trong file của bạn là: ',line1)
line2=f.readline()
print('Dòng 2 trong file của bạn là: ',line2)
Kết quả trả về sẽ là:
Dòng 1 trong file của bạn là: Hello my friend!
Dòng 2 trong file của bạn là: Welcome to mcivietnam
3.3 Đọc file với hàm readlines
Để đọc tất cả thông tin và trả về dưới dạng list các dòng trong Python, chúng ta sử dụng hàm readlines với cú pháp như sau:
f.readlines();
Ví dụ:
f=open('mcivietnam.txt','r')
a=f.readline()
print('Nội dung dòng 1 là: ',(a))
b=f.readlones()
print('Nội dung còn lại là: \n',(b))
c=f.readlines()
print('Nội dung còn lại là: \n',(c))
Kết quả trả về trên màn hình là:
Nội dung dòng 1 là: Hello my friend!
Nội dung còn lại là ['Welcome to mcivietnam\n']
Nội dung còn lại là [.]
3.4 Đọc file với hàm tell() & seek()
Chúng ta có thể thay đổi vị trí con trỏ tệp hiện tại bằng cách sử dụng phương thức seek(). Tương tự, phương thức tell() trả về vị trí hiện tại của con trỏ tệp (ở dạng byte).
Ví dụ: Chúng ta mở, đọc và in ra màn hình 6 ký tự đầu tiên trong file “mcivietnam.txt" với các hàm sau:
f=open('mcivietnam.txt','r')
print(f.read(6))
print(f.tell())
print(f.seek(0))
Kết quả trả về màn hình sẽ là:
Python
6
0
4. Ghi file trong Python
Để ghi một file trong python, đầu tiên cần phải mở file với mode có thể ghi, bạn có thể sử dụng mode ‘w’, ‘a’ hoặc ‘x’.
Tuy nhiên khi dùng mode “w" bạn cần phải lưu ý kỹ vì nó sẽ ghi đè nội dung lên file đã tồn tại của bạn, và những dữ liệu cũ sẽ bị xoá bỏ.
Hãy xem xét ví dụ dưới đây:
with open("mcivietnam.txt",'w') as f:
f.write("Xin chào mci\n")
f.write("Chúc bạn có một ngày vui vẻ\n")
Với câu lệnh này chúng ta đang mở là mcivietnam.txt hoặc tạo 1 file mới nếu file chưa tồn tại và ghi nội dung lên file đó. Hàm write sẽ ghi đè nội dung lên những nội dung đang có sẵn trong file hoặc ghi nội dung vào file được tạo mới. và các ký tự “\n" là để ngăn cách các dòng với nhau.
Kết quả trả về sẽ là:
Xin chào mci
Chúc bạn có một ngày vui vẻ
5. Thay tên file
Để thay tên hoặc đặt lại tên cho file trong python, bạn có thể sử dụng hàm rename() trong module os với cú pháp:
os.rename(src,dst)
Trong đó:
- src là đường dẫn của thư mục cần đổi tên
- dst là đường dẫn của thư mục sau khi đổi tên. Đường dẫn này có thể cùng hoặc khác thư mục mẹ so với đường dẫn trước khi đổi tên.
6. Đóng file
Sau khi sử dùng và làm việc xong với các file, chúng ta có thể đóng file trong python theo cú pháp sau:
f=open('mcivietnam.txt','r')
f.close()
Các khóa học
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- Advanced AWS Cloud Data Engineer Specialized
- AWS Data Engineer for Beginners Specialized
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Combo Business Analyst Level 1 & Level 2 Bestseller
- Business Analyst for Beginners Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường