Cách ghi vào tệp bằng Python – làm thế nào để ghi vào một tệp văn bản trong python

Khám phá cách ghi vào tệp bằng Python bằng phương thức write () và writelines () cũng như mô-đun pathlib và csv.

Bạn đang xem : cách ghi vào tệp văn bản trong python

Với Python, bạn có thể sửa đổi và ghi trực tiếp vào tệp theo chương trình, giúp bạn tiết kiệm được những rắc rối làm điều đó một cách thủ công. Trong bài viết này, bạn sẽ học cách ghi vào một tệp bằng Python.

Trước khi tìm hiểu sâu về cách ghi vào tệp bằng Python, tôi muốn đề cập rằng tôi sử dụng Python 3.8.5 và Windows 10. Tuy nhiên, kết quả của bạn phải giống nhau trên bất kỳ hệ điều hành nào.

Bạn nên có một số kiến ​​thức về thao tác tệp trước khi đọc bài viết này. Để biết thêm thông tin, hãy đọc Cách làm việc với tệp và thư mục bằng Python Cách đổi tên tệp bằng Python .

Có nhiều cách để ghi vào tệp và ghi dữ liệu bằng Python. Hãy bắt đầu với phương thức write () .

Sử dụng write () để ghi vào tệp bằng Python

Bước đầu tiên để viết một tệp bằng Python là mở nó, có nghĩa là bạn có thể truy cập nó thông qua một tập lệnh. Có hai cách để mở tệp. Cách đầu tiên là sử dụng open () , như được hiển thị bên dưới:

# mở tệp ở chế độ ghi
f = open ('file.txt', 'w')

Tuy nhiên, với phương pháp này, bạn cần tự đóng tệp bằng cách gọi phương thức close () :

# đóng tệp
f.close ()

Sẽ ngắn hơn nếu sử dụng câu lệnh with , vì chúng ta không cần gọi phương thức close () .

Đây là phương pháp chúng tôi sẽ sử dụng trong hướng dẫn này:

với open ("file.txt", "w") dưới dạng tệp:

Dòng mã trên sẽ mở file.txt và sẽ gán trình xử lý tệp cho biến có tên là tệp .

Sau đó, chúng tôi có thể gọi phương thức write () để sửa đổi tệp của chúng tôi theo chương trình.

Hãy chạy một ví dụ:

file.write ("Python thật tuyệt vời!")

Khi lệnh này đã được thực thi, chúng tôi muốn đọc tệp để xem nó đã được cập nhật chưa. Chúng ta cần gọi phương thức read () , như được hiển thị bên dưới:

# Mở và đọc tệp sau khi ghi:
với open ("file.txt", "r") dưới dạng tệp:
    print (file.read ())

Điều quan trọng cần lưu ý là các tham số trong hàm open () sẽ quyết định nơi phương thức write () sẽ hoạt động.

Nếu bạn muốn tìm hiểu thêm về cách viết tệp bằng Python bằng phương thức write () , hãy xem khóa học của chúng tôi về Làm việc với Tệp và Thư mục trong Python .

Sử dụng writelines () để Thêm dữ liệu danh sách vào tệp

Một phương pháp khác mà bạn có thể sử dụng là writelines () . Phương pháp này thêm các điều khoản của danh sách theo cách có lập trình. Hãy chạy một ví dụ:

# mở tệp
với open ("file2.txt", "a") dưới dạng tệp:
    # ghi vào tệp
    file.writelines (["Chào bạn!", "LearnPython.com thật tuyệt!"])

# mở và đọc tệp sau khi bổ sung:
với open ("file2.txt", "r") dưới dạng tệp:
    print (file.read ())

Sau khi kiểm tra kết quả đầu ra, bạn sẽ nhận thấy rằng writelines () không thêm bất kỳ dấu phân cách dòng nào theo mặc định; chúng ta phải xác định dấu phân cách dòng. Chúng tôi có thể sửa đổi mã của mình như sau:

# mở và ghi vào tệp
với open ("file2.txt", "a") dưới dạng tệp:
    file.writelines (["Chào bạn! \ n", "LearnPython.com thật tuyệt! \ n"])

# mở và đọc tệp sau khi bổ sung:
với open ("file2.txt", "r") dưới dạng tệp:
    print (file.read ())

Một cách làm hiệu quả và mang tính Pythonic hơn là:

# mở tệp
với open ("file2.txt", "a") dưới dạng tệp:
    # đặt danh sách các dòng để thêm:
    lines = ["Xin chào!", "LearnPython.com thật tuyệt vời!"]
    # ghi vào tệp và thêm dấu phân tách
    file.writelines (s + '\ n' cho các dòng)

# mở và đọc tệp sau khi bổ sung:
với open ("file2.txt", "r") dưới dạng tệp:
    print (file.read ())

Đoạn mã trên sẽ sử dụng các dòng mới làm dấu phân tách dòng.

Xem Thêm  2 cách xóa thuộc tính khỏi đối tượng trong JavaScript - javascript xóa khỏi đối tượng

Ghi dữ liệu vào tệp CSV bằng Python

Bạn có thể thấy hữu ích khi có thể cập nhật tệp CSV trực tiếp bằng Python.

CSV là viết tắt của các giá trị được phân tách bằng dấu phẩy. Nếu bạn là một chuyên gia dữ liệu, bạn chắc chắn đã gặp loại tệp này. Tệp CSV là một tệp văn bản thuần túy chứa danh sách dữ liệu. Loại tệp này thường được sử dụng để trao đổi dữ liệu giữa các ứng dụng. Nếu bạn muốn nâng cao kiến ​​thức của mình về tệp CSV, hãy đọc bài viết của chúng tôi Cách đọc tệp CSV bằng Python .

Trong phần này, chúng tôi sẽ sử dụng mô-đun csv tích hợp sẵn của Python để cập nhật tệp CSV.

Khi bạn muốn ghi dữ liệu vào một tệp bằng Python, có thể bạn sẽ muốn thêm một hoặc nhiều hàng cùng một lúc. Dữ liệu có thể được lưu trữ trong danh sách hoặc từ điển. Hãy cùng khám phá một số cách để ghi dữ liệu vào tệp bằng Python.

Ghi dữ liệu danh sách vào CSV

Hãy khám phá cách thêm một hàng dữ liệu bằng writerow () và nhiều hàng dữ liệu bằng writerows () .

Sử dụng writerow () cho một Hàng đơn

Để ghi vào tệp CSV, chúng tôi cần mở tệp, tạo đối tượng nhà văn và cập nhật tệp. Hãy chạy một ví dụ:

# nhập khẩu
nhập csv

# Tạo tiêu đề và biến dữ liệu
header = ['last_name', 'first_name', 'zip_code', 'chi tiêu']
data = ['Doe', 'John', 546000, 76]

với open ('customer.csv', 'w', encoding = 'UTF8', newline = '') dưới dạng tệp:
    # Tạo đối tượng người viết
    nhà văn = csv.writer (tệp)
    # Viết tiêu đề
    writer.writerow (tiêu đề)
    # Viết dữ liệu
    riter.writerow (dữ liệu)

Để biết thông tin chi tiết, bạn nên đọc tài liệu .

Bây giờ, hãy khám phá cách viết dữ liệu bằng Python khi bạn cần thêm nhiều hàng dữ liệu.

Sử dụng writerows () cho Nhiều hàng

Chúng tôi có thể ghi nhiều hàng vào một tệp bằng phương thức writerows () :

# nhập khẩu
nhập csv

# Tạo tiêu đề và biến dữ liệu
header = ['last_name', 'first_name', 'zip_code', 'chi tiêu']
dữ liệu = [
    ['Smith', 'Nicholas', 453560, 82],
    ['Thompson', 'Julia', 326908, 143],
    ['Tiếng Pháp', 'Michael', 678321, 189],
    ['Được rồi', 'Eva', 285674, 225],
    ['White', 'David', 213456, 167]
]

với open ('customer.csv', 'w', encoding = 'UTF8', newline = '') dưới dạng tệp:
    # Tạo đối tượng người viết
    nhà văn = csv.writer (tệp)
    # Viết tiêu đề
    writer.writerow (tiêu đề)
    # Thêm nhiều hàng dữ liệu
    riter.writerows (dữ liệu)

Chúng tôi vừa thêm một số hàng vào tệp của mình.

Bạn có thể tìm thêm thông tin về phương thức writerows () trong tài liệu .

Ghi dữ liệu từ điển vào CSV

Nếu mỗi hàng của tệp CSV là một từ điển, bạn có thể cập nhật tệp đó bằng cách sử dụng hàm dictWriter () của mô-đun csv . Ví dụ:

# nhập khẩu
nhập csv

# tiêu đề csv
fieldnames = ['last_name', 'first_name', 'zip_code', 'chi tiêu']

# dữ liệu csv
hàng = [{
    'last_name': 'bloggs',
    'first_name': 'Joe',
    'zip_code': 986542,
    'chi tiêu': 367
}, {
    'last_name': 'Xà phòng',
    'first_name': 'Bob',
    'zip_code': 567890,
    'chi tiêu': 287
}, {
    'last_name': 'farnsbarns',
    'first_name': 'Charlie',
    'zip_code': 123456,
    'chi tiêu': 245
}]

với open ('customer.csv', 'w', encoding = 'UTF8', newline = '') là f:
    # Tạo đối tượng người viết
    nhà văn = csv.DictWriter (f, fieldnames = fieldnames)
    # Viết tiêu đề
    nhà văn.writeheader ()
    # Ghi dữ liệu từ từ điển
    riter.writerows (hàng)

Và đó là tất cả những gì bạn phải làm!

Nếu bạn muốn tìm hiểu thêm về chủ đề này, đừng quên xem khóa học về làm việc với tệp và thư mục bằng Python .

Xem Thêm  Cách xây dựng trang web bằng HTML - tạo một trang web cơ bản bằng html

Sử dụng đường dẫn để viết tệp bằng Python

Bây giờ, hãy khám phá cách sử dụng mô-đun pathlib để ghi vào tệp bằng Python. Nếu bạn không quen thuộc với pathlib, hãy xem bài viết trước của tôi về đổi tên tệp bằng Python .

Điều quan trọng cần lưu ý là pathlib có tính di động cao hơn giữa các hệ điều hành và do đó được ưu tiên hơn.

Sử dụng write_text ()

Chúng tôi có thể sử dụng phương thức Path (). write_text () từ pathlib để ghi văn bản vào tệp.

Đầu tiên, chúng tôi sử dụng lớp Path từ pathlib để truy cập file.txt và thứ hai, chúng tôi gọi write_text ( ) để nối văn bản vào tệp. Hãy chạy một ví dụ:

# nhập khẩu

từ đường dẫn nhập pathlib

# Mở tệp và thêm văn bản vào tệp

Đường dẫn ('file.txt'). Write_text ('Chào mừng bạn đến với LearnPython.com')

Tiếp theo, chúng tôi sẽ sử dụng các hàm is_file () , with_name () with_suffix () để lọc các tệp chúng tôi muốn cập nhật. Chúng tôi sẽ chỉ cập nhật những tệp đáp ứng các điều kiện nhất định.

Hàm is_file () sẽ trả về giá trị Boolean là True nếu đường dẫn trỏ đến một tệp thông thường và False nếu không. CácHàm with_name () sẽ trả về một đường dẫn mới với tên tệp đã thay đổi. Cuối cùng, with_suffix () sẽ tạo một đường dẫn mới với phần mở rộng tệp mới.

Bạn có thể đọc chi tiết về các phương pháp này trong tài liệu Python .

Hãy chạy một ví dụ minh họa tất cả những điều này. Chúng tôi sẽ mở tệp văn bản của mình, viết một số văn bản, đổi tên tệp và lưu dưới dạng tệp CSV.

# nhập khẩu
từ đường dẫn nhập pathlib

# đặt thư mục
path = Path.cwd () / 'file.txt'

# Kiểm tra xem tệp có phải là tệp không
if path.is_file ():
    # thêm văn bản
    path.write_text ('Chào mừng bạn đến với LearnPython.com')
    # đổi tên tệp với phần mở rộng mới
    path.replace (path.with_name ('new_file'). with_suffix ('. csv'))

Thao tác tệp bằng Python

Trong phần cuối cùng này, chúng ta sẽ khám phá các thao tác với tệp trong Python bằng cách sử dụng các phương thức tell () seek () .

Sử dụng tell () để có được vị trí hiện tại

Phương thức tell () có thể được sử dụng để lấy vị trí hiện tại của tệp xử lý trong tệp.

Nó giúp xác định vị trí dữ liệu sẽ được đọc hoặc ghi trong tệp theo byte từ đầu tệp.

Bạn có thể coi tệp xử lý như một con trỏ xác định nơi dữ liệu được đọc hoặc ghi trong tệp. Phương thức này không nhận tham số và trả về một số nguyên.

Hãy chạy một ví dụ:

# Mở tệp ở chế độ đọc
với open ("file.txt", "r") dưới dạng tệp:
    # vị trí in của tay cầm
    print (file.tell ())
    # bản in 0

Bạn có thể tìm thêm thông tin trong tài liệu Python .

Sử dụng seek () để thay đổi vị trí luồng

Phương thức seek () được sử dụng để thay đổi vị trí luồng. Luồng là một chuỗi các phần tử dữ liệu có sẵn theo thời gian và vị trí luồng là vị trí của con trỏ trong tệp.

Phương thức seek () hữu ích nếu bạn cần đọc hoặc ghi từ một phần cụ thể của tệp. Cú pháp là:

 fp.seek (bù trừ, khi đó) 

Điều này có nghĩa là gì?

  • fp là con trỏ tệp.
  • offset là số vị trí bạn muốn di chuyển. Nó có thể là một số dương (đi về phía trước) hoặc số âm (đi lùi).
  • whence xác định điểm tham chiếu của bạn. Nó có thể:
    • 0: Phần đầu của tệp.
    • 1: Vị trí hiện tại trong tệp.
    • 2: Phần cuối của tệp.
Xem Thêm  JavaScript TypeOf - Cách kiểm tra loại biến hoặc đối tượng trong JS - kiểu javascript của biến

Nếu bạn bỏ qua tham số ifce, giá trị mặc định là 0.

Khi chúng tôi mở tệp, vị trí là phần đầu của tệp. Khi chúng tôi làm việc với nó, vị trí sẽ tăng lên.

Hàm seek () rất hữu ích khi chúng ta cần xem một tệp đang mở. Hãy chạy một ví dụ nhanh:

# Mở tệp tin
với open ("file.txt", "r") dưới dạng tệp:
    file.seek (4)
    print (file.readline ())

Bạn có thể tìm thêm thông tin trong tài liệu Python.

Tìm hiểu thêm về cách làm việc với tệp bằng Python

Chúng tôi đã đề cập rất nhiều điều trong bài viết này. Bạn đang có một số kiến ​​thức vững chắc về thao tác tệp với Python.

Giờ bạn đã biết cách ghi vào tệp bằng Python và cách ghi dữ liệu vào tệp bằng Python. Chúng tôi cũng đã khám phá ngắn gọn các phương thức tell () seek () để thao tác một tệp.

Đừng quên xem khóa học của chúng tôi về Làm việc với Tệp và Thư mục trong Python để đào sâu và củng cố kiến ​​thức Python của bạn!


Xem thêm những thông tin liên quan đến chủ đề làm thế nào để ghi vào một tệp văn bản trong python

Bài 11. Tệp và thao tác với tệp trong Python

  • Tác giả: Cô Sương
  • Ngày đăng: 2021-06-17
  • Đánh giá: 4 ⭐ ( 1683 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tệp (file) trong Python
    Phương thức open()
    Phương thức read()
    Phương thức readline()
    Phương thức readlines()
    Phương thức write()
    Phương thức close()
    Phương thức seek()
    Câu lệnh with

Giới thiệu về Python

  • Tác giả: hiepsiit.com
  • Đánh giá: 4 ⭐ ( 7777 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Làm việc với File trong Python

  • Tác giả: quantrimang.com
  • Đánh giá: 3 ⭐ ( 4134 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết này, Quantrimang sẽ cùng bạn tìm hiểu về các hoạt động của file trong Python. Cụ thể hơn là về cách mở file, đọc file, ghi tới file, đóng file cũng như các phương thức làm việc với tập tin mà bạn nên biết. Hãy cùng theo dõi.

Ghi file trong python

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 4 ⭐ ( 9343 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn cách xử lý file trong Python. Bạn sẽ học được các cách ghi vào file trong python như ghi chèn file, ghi đè file, cách dùng các phương thức như write(), writelines() để ghi file, cũng như các

Cách viết hoặc print một file trong Python

  • Tác giả: thptsoctrang.edu.vn
  • Đánh giá: 3 ⭐ ( 4473 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Nếu mới học Python, bạn cần biết cách ghi file. Dưới đây là hướng dẫn cách viết hay print một tập tin trong Python.

Đọc ghi file trong Python

  • Tác giả: nguyenvanhieu.vn
  • Đánh giá: 3 ⭐ ( 7013 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đọc ghi file trong Python hoặc trong bất kỳ ngôn ngữ nào khác là một thao tác thường xuyên được sử dụng trong quá trình làm việc. Bài viết này sẽ hướng dẫn

Input và Đọc ghi file trong Python

  • Tác giả: toidicode.com
  • Đánh giá: 3 ⭐ ( 2198 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ở các bài trước chúng ta đã được tìm hiểu về các kiểu dữ liệu, toán tử cũng như cách khai báo hàm,… trong Python rồi, nhưng ở các bài đó chủ yếu vẫn là làm việc với hệ thống, dữ liệu có sẵn. Mà chúng ta chưa biết cách nhận dữ liệu mà người dùng nhập vào trên comandline, và bài hôm nay chúng ta sẽ tìm hiều về nó.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình