Bạn có thể đọc một tệp trong hàm Python không?

Hàm open[] trả về một đối tượng tệp, có phương thức read[] để đọc nội dung của tệp

Nếu tệp nằm ở một vị trí khác, bạn sẽ phải chỉ định đường dẫn tệp, như thế này

Ví dụ

Mở tệp trên một vị trí khác

f = mở["D. \\myfiles\chào mừng. txt", "r"]
in [f. đọc[]]

Chạy ví dụ »

Chỉ đọc các phần của tệp

Theo mặc định, phương thức read[] trả về toàn bộ văn bản, nhưng bạn cũng có thể chỉ định số lượng ký tự bạn muốn trả về

Ví dụ

Trả về 5 ký tự đầu tiên của tệp

f = open["tệp demo. txt", "r"]
in [f. đọc [5]]

Chạy ví dụ »

Học cách lọc dữ liệu bằng Python như một nhà phân tích dữ liệu

Thử tham gia các buổi đào tạo thực hành với hướng dẫn từng bước từ chuyên gia. Hãy thử dự án có hướng dẫn được thực hiện với sự cộng tác của Coursera ngay bây giờ

Get started

đọc dòng

Bạn có thể trả về một dòng bằng cách sử dụng phương thức readline[]

Ví dụ

Đọc một dòng của tập tin

f = open["tệp demo. txt", "r"]
in [f. dòng đọc[]]

Chạy ví dụ »

Bằng cách gọi readline[] hai lần, bạn có thể đọc hai dòng đầu tiên

Ví dụ

Đọc hai dòng của tập tin

f = open["tệp demo. txt", "r"]
in [f. dòng đọc[]]
in [f. dòng đọc[]]

Chạy ví dụ »

Bằng cách lặp qua các dòng của tệp, bạn có thể đọc toàn bộ tệp, từng dòng một

Ví dụ

Lặp qua từng dòng tệp

f = open["tệp demo. txt", "r"]
cho x trong f
in[x]

Chạy ví dụ »

Đóng tệp

Đó là một thực hành tốt để luôn đóng tệp khi bạn hoàn thành nó

Ví dụ

Đóng tệp khi bạn hoàn thành với nó

f = open["tệp demo. txt", "r"]
in [f. dòng đọc[]]
f. đóng[]

Chạy ví dụ »

Ghi chú. Bạn phải luôn đóng tệp của mình, trong một số trường hợp, do lưu vào bộ đệm, các thay đổi được thực hiện đối với tệp có thể không hiển thị cho đến khi bạn đóng tệp

Để làm việc với dữ liệu được lưu trữ, việc xử lý tệp trở thành kiến ​​thức cốt lõi của mọi lập trình viên Python chuyên nghiệp. Ngay từ lần phát hành đầu tiên, cả việc đọc và ghi dữ liệu vào tệp đều là các tính năng Python tích hợp sẵn. So với các ngôn ngữ lập trình khác như C hay Java, nó khá đơn giản và chỉ yêu cầu một vài dòng mã. Hơn nữa, không có mô-đun bổ sung nào phải được tải để thực hiện đúng cách

Trong bài viết này, chúng tôi sẽ giải thích cách đọc tệp bằng Python thông qua các ví dụ. Một số ví dụ bao gồm đọc tệp theo từng dòng, dưới dạng một đoạn [một số dòng được xác định tại một thời điểm] và đọc tệp trong một lần. Ngoài ra, chúng tôi sẽ chỉ cho bạn cách chỉ đọc một dòng cụ thể từ tệp mà không cần tìm kiếm toàn bộ tệp

Khái niệm cơ bản về tệp trong Python

Các phương pháp phổ biến để thao tác với tệp là open[] để mở tệp, seek[] để đặt vị trí hiện tại của tệp ở độ lệch đã cho và close[] để đóng đối tượng tệp khi bạn sử dụng xong. Hàm open[] tích hợp trả về một điều khiển tệp đại diện cho một đối tượng tệp được sử dụng để truy cập tệp để đọc, viết hoặc nối thêm

Khi mở tệp để đọc, Python cần biết chính xác cách mở tệp bằng hệ thống. Có sẵn hai chế độ truy cập - đọc và đọc ở chế độ nhị phân. Các cờ tương ứng được sử dụng là 'r''rb' và phải được chỉ định khi mở tệp có chức năng open[] tích hợp. Chế độ đầu tiên bao gồm việc diễn giải các ký tự đặc biệt như "CR" [trả về xuống dòng] và "LF" [dấu dòng] để biểu thị ngắt dòng, trong khi chế độ nhị phân cho phép bạn đọc dữ liệu ở chế độ thô - nơi dữ liệu được lưu trữ nguyên trạng.

Khi bạn đã mở một tệp, hàm open[] sẽ trả về một đối tượng tệp cho bạn. Các đối tượng tệp này có các phương thức như read[], readline[], seek[]0, seek[]1 và seek[]. Trong khi một số đối tượng tệp [hoặc đối tượng giống như tệp] có nhiều phương thức hơn những đối tượng được liệt kê ở đây, thì đây là những đối tượng phổ biến nhất. Không phải tất cả các đối tượng tệp cần triển khai tất cả các phương thức tệp

Đọc từng dòng tệp

Ví dụ đầu tiên lấy cảm hứng từ hai ngôn ngữ lập trình - C và C++. Đây có lẽ là cách tiếp cận trực quan nhất - mở tệp bằng hàm open[], đọc tệp theo từng dòng bằng phương pháp readline[] và xuất dòng ngay sau khi đọc

Được sử dụng ở đây là một vòng lặp seek[]5 liên tục đọc từ tệp miễn là phương thức readline[] tiếp tục trả về dữ liệu. Trong trường hợp đến cuối tệp [EOF], vòng lặp seek[]5 dừng và đối tượng tệp được đóng lại, giải phóng tài nguyên cho các chương trình khác sử dụng

Như bạn có thể đã lưu ý, chúng tôi đã mở và đóng tệp một cách rõ ràng trong ví dụ này. Mặc dù trình thông dịch Python tự động đóng các tệp đã mở khi kết thúc quá trình thực thi chương trình Python, nhưng việc đóng tệp một cách rõ ràng qua close[] là một phong cách lập trình tốt và không nên quên

Là một cải tiến, giao thức trình vòng lặp tiện lợi đã được giới thiệu trong Python 2. 3. Điều này cho phép bạn đơn giản hóa vòng lặp seek[]9

Được sử dụng ở đây là một vòng lặp close[]0 kết hợp với trình vòng lặp close[]1. Dòng hiện tại được xác định với sự trợ giúp của trình vòng lặp close[]1, được đọc từ tệp và nội dung của nó được xuất ra thành close[]3. Python bao việc mở và đóng tệp cho bạn khi nó nằm ngoài phạm vi. Mặc dù không hiệu quả nhưng điều này cho phép bạn không phải xử lý các tệp xử lý nữa

Thật không may, mã ở trên ít rõ ràng hơn và dựa vào bộ sưu tập rác nội bộ của Python để xử lý việc đóng tệp

Được giới thiệu trong Python 2. 5, lệnh close[]4 gói gọn toàn bộ quy trình hơn nữa, đồng thời xử lý việc mở và đóng tệp chỉ một lần trong toàn bộ khối mã được xác định phạm vi

Sự kết hợp của câu lệnh close[]4 và lệnh open[] chỉ mở tệp một lần. Nếu thành công, vòng lặp close[]0 được thực thi và nội dung của dòng được in trên close[]3

Hơn nữa, việc sử dụng câu lệnh close[]4 có tác dụng phụ. Bên trong, trình thông dịch Python tạo một khối open[]0-open[]1 để đóng gói việc đọc từ tệp. Ví dụ sau đây cho thấy những gì cơ bản đang xảy ra bên trong Python với các khối mã close[]4

Đọc một tệp dưới dạng các dòng

Cho đến nay, chúng tôi đã xử lý từng dòng một tệp. Điều này khá chậm đối với các tệp lớn và có thể được cải thiện bằng cách đọc nhiều dòng cùng một lúc. Để đạt được điều đó, phương pháp open[]3 từ mô-đun itertools phát huy tác dụng. Ngoài ra, nó hoạt động như một trình vòng lặp và trả về một đoạn dữ liệu bao gồm _______ 4 dòng. Khi kết thúc tệp, kết quả có thể ngắn hơn và cuối cùng, cuộc gọi sẽ trả về một danh sách trống

Đọc một dòng cụ thể từ một tệp

Sử dụng các phương pháp được hiển thị ở trên, chúng tôi cũng có thể thực hiện các hành động hữu ích khác, chẳng hạn như đọc một dòng cụ thể từ một tệp. Để làm điều này, chúng tôi sử dụng một bộ đếm và in dòng thích hợp khi chúng tôi đến đó trong khi lặp qua tệp

Điều này sẽ đơn giản để hiểu, nhưng nó dài hơn một chút so với các ví dụ trước. Nó có thể được rút ngắn bằng cách sử dụng mô-đun linecache

Ví dụ sau đây cho thấy cách đơn giản hóa mã bằng phương pháp open[]5. Nếu số dòng được yêu cầu nằm ngoài phạm vi các dòng hợp lệ trong tệp, thì phương thức open[]5 sẽ trả về một chuỗi trống thay thế

Đọc toàn bộ tệp cùng một lúc

Cuối cùng nhưng không kém phần quan trọng, chúng ta sẽ xem xét một trường hợp rất khác so với ví dụ trước - đọc toàn bộ tệp trong một lần

Hãy nhớ rằng trong hầu hết các trường hợp, bạn nên có đủ bộ nhớ để đọc toàn bộ tệp, vì các ký tự không chiếm quá nhiều dung lượng, nhưng hãy cảm thấy mệt mỏi với các tệp lớn. Ví dụ sau sử dụng kết hợp câu lệnh close[]4 và phương thức read[]. Trong trường hợp này, chúng tôi sẽ sử dụng read[] để tải nội dung tệp dưới dạng luồng dữ liệu

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Python cũng cung cấp phương thức 'r'0, tương tự như phương thức readline[] trong ví dụ đầu tiên. Ngược lại với read[], nội dung tệp được lưu trữ trong một danh sách, trong đó mỗi dòng nội dung là một mục

Mặc dù 'r'0 sẽ đọc nội dung từ tệp cho đến khi chạm vào EOF, hãy nhớ rằng bạn cũng có thể giới hạn lượng nội dung được đọc bằng cách cung cấp tham số 'r'4, là số byte cần đọc

Phần kết luận

Như thường lệ, có nhiều cách để đọc nội dung của tệp. Về tốc độ, tất cả chúng đều ít nhiều trong cùng một loại. Giải pháp nào phù hợp nhất với bạn tùy thuộc vào trường hợp sử dụng cụ thể của bạn. Chúng tôi nghĩ rằng sẽ rất hữu ích khi xem những gì có thể và sau đó chọn giải pháp phù hợp nhất

Mặc dù Python đơn giản hóa đáng kể quá trình đọc tệp, nhưng đôi khi nó vẫn có thể trở nên phức tạp, trong trường hợp đó, tôi khuyên bạn nên xem tài liệu Python chính thức để biết thêm thông tin

Bạn có thể mở một tệp trong hàm Python không?

Bây giờ, hãy thử mở dữ liệu từ tệp này bằng hàm open[]. Ở đây, chúng tôi đã tạo một đối tượng tệp có tên tệp1. Đối tượng này có thể được sử dụng để làm việc với các tệp và thư mục. . Các chế độ khác nhau để mở tệp trong Python

Hàm nào đọc tệp văn bản trong Python?

Python cung cấp chức năng tích hợp sẵn giúp chúng ta mở tệp ở các chế độ khác nhau. Hàm open[] chấp nhận hai tham số cần thiết. tên tệp và chế độ; .

Có chức năng đọc trong Python không?

read[] trong Python được sử dụng để đọc tối đa n byte từ tệp được liên kết với bộ mô tả tệp đã cho . Nếu đã đến cuối tệp trong khi đọc byte từ bộ mô tả tệp đã cho, os. phương thức read[] sẽ trả về một đối tượng byte trống cho tất cả các byte còn lại được đọc.

Chủ Đề