Trong hướng dẫn này, bạn sẽ tìm hiểu về các thao tác với tệp Python. Cụ thể hơn, mở một tệp, đọc từ đó, ghi vào tệp, đóng tệp và các phương thức tệp khác nhau mà bạn nên biết.

Bạn đang xem : python cách đọc tệp

Tệp

Các tệp là các vị trí được đặt tên trên đĩa để lưu trữ thông tin liên quan. Chúng được sử dụng để lưu trữ vĩnh viễn dữ liệu trong bộ nhớ không bay hơi (ví dụ: đĩa cứng).

Vì Bộ nhớ truy cập ngẫu nhiên (RAM) dễ bay hơi (mất dữ liệu khi máy tính tắt), chúng tôi sử dụng tệp để sử dụng dữ liệu trong tương lai bằng cách lưu trữ vĩnh viễn chúng.

Khi chúng tôi muốn đọc hoặc ghi vào một tệp, trước tiên chúng tôi cần mở tệp đó. Khi chúng tôi hoàn tất, nó cần được đóng lại để các tài nguyên gắn với tệp được giải phóng.

Do đó, trong Python, hoạt động tệp diễn ra theo thứ tự sau:

  1. Mở một tệp
  2. Đọc hoặc ghi (thực hiện thao tác)
  3. Đóng tệp

Mở tệp bằng Python

Python có một hàm open () tích hợp sẵn để mở một tệp. Hàm này trả về một đối tượng tệp, còn được gọi là một xử lý, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp.

 & gt; & gt; & gt; f = open ("test.txt") # mở tệp trong thư mục hiện tại
& gt; & gt; & gt; f = open ("C: /Python38/README.txt") # chỉ định đường dẫn đầy đủ  

Chúng tôi có thể chỉ định chế độ trong khi mở tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọc r , ghi w hay nối a vào tệp. Chúng tôi cũng có thể chỉ định xem chúng tôi muốn mở tệp ở chế độ văn bản hay chế độ nhị phân.

Mặc định là đọc ở chế độ văn bản. Ở chế độ này, chúng tôi nhận được các chuỗi khi đọc từ tệp.

Mặt khác, chế độ nhị phân trả về byte và đây là chế độ được sử dụng khi xử lý các tệp không phải văn bản như hình ảnh hoặc tệp thực thi.

Cách thức
Sự mô tả
r
Mở tệp để đọc. (mặc định)
w
Mở tệp để viết. Tạo một tệp mới nếu nó không tồn tại hoặc cắt bớt tệp nếu nó tồn tại.
x
Mở tệp để tạo độc quyền. Nếu tệp đã tồn tại, hoạt động không thành công.
a
Mở tệp để nối vào cuối tệp mà không cắt bớt. Tạo một tệp mới nếu nó không tồn tại.
t
Mở ở chế độ văn bản. (mặc định)
b
Mở ở chế độ nhị phân.
+
Mở tệp để cập nhật (đọc và ghi)

 f = open ("test.txt") # tương đương với 'r' hoặc 'rt'
f = open ("test.txt", 'w') # viết ở chế độ văn bản
f = open ("img.bmp", 'r + b') # đọc và ghi ở chế độ nhị phân  

Không giống như các ngôn ngữ khác, ký tự a không ngụ ý số 97 cho đến khi nó được mã hóa bằng ASCII (hoặc các mã hóa tương đương khác).

Hơn nữa, mã hóa mặc định phụ thuộc vào nền tảng. Trong windows, nó là cp1252 nhưng là utf-8 trong Linux.

Vì vậy, chúng tôi cũng không được dựa vào mã hóa mặc định, nếu không mã của chúng tôi sẽ hoạt động khác nhau ở các nền tảng khác nhau.

Do đó, khi làm việc với các tệp ở chế độ văn bản, bạn nên chỉ định loại mã hóa.

 f = open ("test.txt", mode = 'r', encoding = 'utf-8')  

Đóng tệp bằng Python

Khi thực hiện xong các thao tác trên tệp, chúng ta cần đóng tệp đúng cách.

Xem Thêm  Cách tải CSS không đồng bộ (Hướng dẫn) - cách tải css

Việc đóng tệp sẽ giải phóng các tài nguyên được liên kết với tệp. Nó được thực hiện bằng cách sử dụng phương thức close () có sẵn trong Python.

Python có một trình thu gom rác để dọn dẹp các đối tượng không được tham chiếu nhưng chúng ta không được dựa vào nó để đóng tệp.

 f = open ("test.txt", encoding = 'utf-8')
# thực hiện các thao tác với tệp
f.close ()  

Phương pháp này không hoàn toàn an toàn. Nếu một ngoại lệ xảy ra khi chúng tôi đang thực hiện một số thao tác với tệp, thì mã sẽ thoát mà không đóng tệp.

Một cách an toàn hơn là sử dụng khối try … last .

 hãy thử:
   f = open ("test.txt", encoding = 'utf-8')
   # thực hiện các thao tác với tệp
cuối cùng:
   f.close ()  

Bằng cách này, chúng tôi đảm bảo rằng tệp được đóng đúng cách ngay cả khi một ngoại lệ được đưa ra khiến luồng chương trình dừng lại.

Cách tốt nhất để đóng tệp là sử dụng câu lệnh with . Điều này đảm bảo rằng tệp được đóng khi khối bên trong câu lệnh with được thoát.

Chúng tôi không cần gọi phương thức close () một cách rõ ràng. Nó được thực hiện trong nội bộ.

 với open ("test.txt", encoding = 'utf-8') là f:
   # thực hiện các thao tác với tệp 

Ghi vào tệp bằng Python

Để ghi vào một tệp bằng Python, chúng ta cần mở tệp đó ở chế độ viết w , thêm a hoặc tạo độc quyền x .

Chúng tôi cần phải cẩn thận với chế độ w , vì nó sẽ ghi đè vào tệp nếu nó đã tồn tại. Do đó, tất cả dữ liệu trước đó sẽ bị xóa.

Việc ghi một chuỗi hoặc chuỗi byte (đối với tệp nhị phân) được thực hiện bằng phương thức write () . Phương thức này trả về số ký tự được ghi vào tệp.

 với open ("test.txt", 'w', encoding = 'utf-8') là f:
   f.write ("tệp đầu tiên của tôi \ n")
   f.write ("Tệp này \ n \ n")
   f.write ("chứa ba dòng \ n")  

Chương trình này sẽ tạo một tệp mới có tên test.txt trong thư mục hiện tại nếu nó không tồn tại. Nếu nó tồn tại, nó sẽ bị ghi đè.

Chúng tôi phải tự bao gồm các ký tự dòng mới để phân biệt các dòng khác nhau.

Đọc tệp bằng Python

Để đọc tệp bằng Python, chúng ta phải mở tệp ở chế độ đọc r .

Có nhiều phương pháp khác nhau cho mục đích này. Chúng ta có thể sử dụng phương thức read (size) để đọc số kích thước của dữ liệu. Nếu tham số kích thước không được chỉ định, tham số này sẽ đọc và trả về đến cuối tệp.

Chúng tôi có thể đọc tệp text.txt mà chúng tôi đã viết trong phần trên theo cách sau:

 & gt; & gt; & gt; f = open ("test.txt", 'r', encoding = 'utf-8')
& gt; & gt; & gt; f.read (4) # đọc 4 dữ liệu đầu tiên
'Đây'

& gt; & gt; & gt; f.read (4) # đọc 4 dữ liệu tiếp theo
' Là '

& gt; & gt; & gt; f.read () # đọc phần còn lại cho đến cuối tệp
'tệp đầu tiên của tôi \ nTệp này \ n gồm ba dòng \ n'

& gt; & gt; & gt; f.read () # đọc thêm trả về stt trống
''  

Chúng ta có thể thấy rằng phương thức read () trả về một dòng mới là '\ n' . Khi đến cuối tệp, chúng ta sẽ nhận được một chuỗi trống khi đọc thêm.

Chúng tôi 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 chúng ta (tính theo số byte).

 & gt; & gt; & gt; f.tell () # lấy vị trí tệp hiện tại
56

& gt; & gt; & gt; f.seek (0) # đưa con trỏ tệp về vị trí ban đầu
0

& gt; & gt; & gt; print (f.read ()) # đọc toàn bộ tệp
Đây là tệp đầu tiên của tôi
Tập tin này
chứa ba dòng  

Chúng tôi có thể đọc từng dòng một tệp bằng for loop . Điều này vừa hiệu quả vừa nhanh chóng.

 & gt; & gt; & gt; cho dòng trong f:
... print (line, end = '')
...
Đây là tệp đầu tiên của tôi
Tập tin này
chứa ba dòng  

Trong chương trình này, các dòng trong tệp chính nó bao gồm một ký tự dòng mới \ n . Vì vậy, chúng tôi sử dụng tham số end của hàm print () để tránh hai dòng mới khi in.

Xem Thêm  Ví dụ về JSON - ví dụ đối tượng mảng json

Ngoài ra, chúng tôi có thể sử dụng phương thức readline () để đọc các dòng riêng lẻ của tệp. Phương thức này đọc tệp cho đến dòng mới, bao gồm cả ký tự dòng mới.

 & gt; & gt; & gt; f.readline ()
'Đây là tệp đầu tiên của tôi \ n'

& gt; & gt; & gt; f.readline ()
'Tệp này \ n'

& gt; & gt; & gt; f.readline ()
'chứa ba dòng \ n'

& gt; & gt; & gt; f.readline ()
''  

Cuối cùng, phương thức readlines () trả về danh sách các dòng còn lại của toàn bộ tệp. Tất cả các phương pháp đọc này trả về giá trị trống khi đạt đến cuối tệp (EOF).

 & gt; & gt; & gt; f.readlines ()
['Đây là tệp đầu tiên của tôi \ n', "Tệp này \ n ',' chứa ba dòng \ n ']  

Phương thức tệp Python

Có nhiều phương pháp khác nhau có sẵn với đối tượng tệp. Một số trong số chúng đã được sử dụng trong các ví dụ trên.

Dưới đây là danh sách đầy đủ các phương pháp ở chế độ văn bản với mô tả ngắn gọn:

Phương pháp
Sự mô tả
gần()
Đóng một tệp đã mở. Nó không có hiệu lực nếu tệp đã được đóng.
tách ra ()
Tách bộ đệm nhị phân bên dưới khỏi TextIOBase và trả về nó.
thư mục số()
Trả về một số nguyên (bộ mô tả tệp) của tệp.
tuôn ra()
Làm sạch bộ đệm ghi của dòng tệp.
isatty ()
Trả về True nếu luồng tệp có tính tương tác.
đọc (n)
Đọc nhiều nhất n ký tự từ tệp. Đọc cho đến cuối tệp nếu nó là số âm hoặc Không có .
có thể đọc được ()
Trả về True nếu luồng tệp có thể được đọc từ đó.
dòng đọc (n = -1)
Đọc và trả về một dòng từ tệp. Đọc tối đa n byte nếu được chỉ định.
dòng đọc (n = -1)
Đọc và trả về danh sách các dòng từ tệp. Đọc tối đa n byte / ký tự nếu được chỉ định.
tìm kiếm (bù đắp, từ = SEEK_SET )
Thay đổi vị trí tệp thành byte bù đắp, tham chiếu đến từ (bắt đầu, hiện tại, kết thúc).
có thể tìm kiếm ()
Trả về True nếu luồng tệp hỗ trợ truy cập ngẫu nhiên.
kể()
Trả về một số nguyên đại diện cho vị trí hiện tại của đối tượng của tệp.
cắt ngắn (kích thước = Không có )
Thay đổi kích thước luồng tệp thành kích thước byte. Nếu kích thước không được chỉ định, hãy thay đổi kích thước thành vị trí hiện tại.
có thể ghi ()
Trả về True nếu luồng tệp có thể được ghi vào.
viết (các)
Ghi chuỗi s vào tệp và trả về số ký tự được ghi.
writelines (dòng)
Ghi danh sách các dòng vào tệp.

Xem Thêm  Các toán tử số học khác nhau trong Python - toán tử số học trong python


Xem thêm những thông tin liên quan đến chủ đề python làm thế nào để đọc một tệp

How to Read a Text File in Python

  • Tác giả: Maker Vibe
  • Ngày đăng: 2021-07-27
  • Đánh giá: 4 ⭐ ( 2100 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Learn how to easily read and analyse text files in Python easily using the Numpy library. This video walks you through all the steps from setting up your environment and downloading Numpy all the way to importing your text data and some basic data visualisation by separating our data into columns inside Python.

    You will learn:
    – How to read text files in python
    – Parsing text files in python using array slicing
    – How to work with text files in python in a general sense

    Don’t forget to like, subscribe and let me know what you think in the comments below!

    Download the example data file:
    house_data.txt | https://bit.ly/2Vfu2pG

    Chapter breakdown:

    0:00 – Introduction
    0:14 – Set up your project
    0:34 – Create your Python script
    0:46 – Creating your data directory
    1:04 – Analysing the data file
    1:42 – Installing Numpy in Pycharm
    2:21 – Importing Numpy in our Python script
    2:38 – Importing our text data
    3:56 – Separating the first column from the dataset
    4:20 – Extracting the first column with array slicing
    5:02 – Printing the first column of our dataset

    python programming learning

    python, python how to read a text file, data, text, programming, teaching, learning, data science, artificial intelligence, computer science, software, hardware, engineering, how to, education, diy

Thao tác với file trong Python

  • Tác giả: phannhatchanh.com
  • Đánh giá: 4 ⭐ ( 4872 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chúng ta thường lưu trữ dữ liệu của mình dưới các định dạng file khác nhau như .txt, .json, .xml, .csv, .tsv, .xlsx). Trong phần này, ta sẽ…

Mở (open) và đọc (read) tập tin (file) với Python

  • Tác giả: gochocit.com
  • Đánh giá: 4 ⭐ ( 4019 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mở (open) và đọc (read) tập tin (file) với Python. Chế độ (mode) của hàm open() trong Python. Hàm read(), readline(), close() trong Python.

Phương thức readline () trong Python với các ví dụ

  • Tác giả: vi.on2vhf.be
  • Đánh giá: 4 ⭐ ( 7127 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đường đọc Python là gì? Python readline () là một phương thức tệp giúp đọc một dòng hoàn chỉnh từ tệp đã cho. Nó có một dòng mới ở cuối (‘ n’) ở cuối chuỗi được trả về. Bạn cũng có thể

Xử lý file trong Python

  • Tác giả: howkteam.vn
  • Đánh giá: 5 ⭐ ( 3784 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xử lý file trong Python

Xử lý tệp bằng Python – Tìm hiểu và nắm rõ nhanh trong 10 phút

  • Tác giả: t3h.com.vn
  • Đánh giá: 4 ⭐ ( 5536 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tính linh hoạt này, kết hợp với sự dễ sử dụng cho người mới bắt đầu, đã khiến nó trở thành một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất hiện nay. Trong bài học này, bạn sẽ tìm hiểu tất cả về Xử lý tệp bằng Python.

Đọc file trong python

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 5 ⭐ ( 4419 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ẽ biết cách đọc file trong python bằng mode r trong python, với các phương pháp như đọc toàn bộ file trong python hoặc đọc từng dòng file txt trong Python

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

By ads_php