Viết và tạo tệp trong Python

Category: Python

Ghi vào tệp trong Python có nghĩa là lưu dữ liệu do chương trình của bạn tạo ra vào tệp trên hệ thống của bạn. Bài viết này sẽ trình bày chi tiết về cách ghi vào tệp trong Python.

Tạo một tập tin

Tạo một tệp là bước đầu tiên trước khi ghi dữ liệu vào tệp đó. Trong Python, chúng ta có thể tạo một tệp bằng ba chế độ sau:

  • Chế độ ghi ("w"): Chế độ này tạo một tệp mới nếu tệp không tồn tại. Nếu tệp đã tồn tại, chế độ này sẽ cắt bớt tệp (tức là xóa nội dung hiện có) và bắt đầu lại từ đầu.

  • Chế độ Thêm ("a"): Chế độ này tạo một tệp mới nếu tệp đó không tồn tại. Nếu tệp tồn tại, nó sẽ thêm nội dung mới vào cuối mà không sửa đổi dữ liệu hiện có.

  • Chế độ tạo độc quyền ("x"): Chế độ này chỉ tạo một tệp mới nếu tệp đó chưa tồn tại. Nếu tệp đó đã tồn tại, nó sẽ tạo ra FileExistsError.

Ví dụ:

# Chế độ ghi: Tạo tệp mới hoặc ghi đè tệp đã tồn tại

with open("file.txt", "w") as f:
    f.write("Created using write mode.")  # Được tạo bằng chế độ ghi

f = open("file.txt","r")
print(f.read())

# Chế độ nối thêm: Tạo tệp mới hoặc thêm nội dung vào tệp đã tồn tại

with open("file.txt", "a") as f:
    f.write("Content appended to the file.")  # Nội dung được nối thêm vào tệp

f = open("file.txt","r")
print(f.read())

# Chế độ tạo độc quyền: Tạo tệp mới, báo lỗi nếu tệp đã tồn tại

try:
    with open("file.txt", "x") as f:
        f.write("Created using exclusive mode.")  # Được tạo bằng chế độ độc quyền
except FileExistsError:
    print("Already exists.")  # Đã tồn tại

Đầu ra

Created using write mode.
Created using write mode.Content appended to the file.
Already exists.

Ghi vào một tập tin hiện có

Nếu chúng ta muốn sửa đổi hoặc thêm nội dung mới vào một tệp đã có sẵn, chúng ta có thể sử dụng hai phương pháp:

chế độ ghi ("w"): Chế độ này sẽ ghi đè lên bất kỳ nội dung hiện có nào,

writelines() : Cho phép chúng ta ghi một danh sách chuỗi vào tệp chỉ bằng một lệnh gọi.

Ví dụ:

# Ghi vào một tệp đã tồn tại (nội dung sẽ bị ghi đè)
with open("file1.txt", "w") as f:
    f.write("Written to the file.")  # Được ghi vào tệp

f = open("file1.txt","r")
print(f.read())

# Ghi nhiều dòng vào một tệp đã tồn tại bằng cách sử dụng writelines()
s = ["First line of text.\n", "Second line of text.\n", "Third line of text.\n"]

with open("file1.txt", "w") as f:
    f.writelines(s)  # Ghi nhiều dòng vào tệp

f = open("file1.txt","r")
print(f.read())

Đầu ra

Written to the file.
First line of text.
Second line of text.
Third line of text.

Giải thích:

  • open("example.txt", "w"): Mở tệp example.txt ở chế độ ghi. Nếu tệp tồn tại, nội dung của tệp sẽ bị xóa và thay thế bằng dữ liệu mới.

  • file.write("Đã ghi vào tệp."): Ghi nội dung mới vào tệp.

  • file.writelines(lines): Phương thức này lấy một danh sách các chuỗi và ghi chúng vào tệp. Không giống như write() ghi một chuỗi duy nhất, writelines() ghi từng phần tử trong danh sách lần lượt. Nó không tự động thêm ký tự xuống dòng giữa các dòng, vì vậy \n cần được đưa vào chuỗi để đảm bảo ngắt dòng đúng cách.

Viết vào một tập tin nhị phân

Khi xử lý dữ liệu không phải văn bản (ví dụ: hình ảnh, âm thanh hoặc dữ liệu nhị phân khác), Python cho phép bạn ghi vào tệp ở chế độ nhị phân. Dữ liệu nhị phân không được mã hóa dưới dạng văn bản và sử dụng chế độ ghi nhị phân ( "wb") đảm bảo rằng nội dung tệp được xử lý dưới dạng byte thô.

# Ghi dữ liệu nhị phân vào tệp
bin = b'\x00\x01\x02\x03\x04'

with open("file.bin", "wb") as f:
    f.write(bin)  # Ghi dữ liệu nhị phân vào tệp

f = open("file.bin","r")
print(f.read())

Đầu ra



Giải thích:

  • bin= b'\x00\x01\x02\x03\x04': b trước chuỗi chỉ ra rằng đây là dữ liệu nhị phân. Mỗi cặp biểu diễn một giá trị byte.

  • open("file.bin", "wb"): Mở tệp file.bin ở chế độ ghi nhị phân. Nếu tệp không tồn tại, Python sẽ tạo tệp đó.

  • file.write(bin): Ghi dữ liệu nhị phân vào tệp dưới dạng byte thô.

Published on Jun 20, 2025