Cách chính xác để đọc tệp trong python là

Ngôn ngữ lập trình Python rất nổi tiếng vì tính linh hoạt tuyệt vời của nó, cả về cú pháp và cách bạn có thể đạt được một mục tiêu nhất định. Trên thực tế, có vô số phương pháp khác nhau để một lập trình viên Python có được cùng một kết quả cuối cùng, từ việc sử dụng cú pháp ưa thích đến hack các chức năng tích hợp sẵn.

Trong bài viết này, tôi sẽ chỉ cho bạn 7 cách đọc nội dung của tệp trong Python

Chức năng open[] tích hợp trong trường học cũ

Phương pháp đầu tiên và cơ bản nhất để đọc tệp trong Python là sử dụng hàm open[] tích hợp sẵn trả về một luồng có thể đọc được. Sau đó, bạn có thể sử dụng phương pháp read[] để đọc nội dung của luồng

Giả sử chúng ta có một tệp tên là file.txt trong cùng thư mục của tập lệnh Python

Ok, đó là một chút tầm thường và phi Pythonic. Hãy xem xét một cách tiếp cận tốt hơn

Mở bằng trình quản lý bối cảnh

Đây là cách phổ biến nhất để đọc tệp trong Python. Trình quản lý bối cảnh ngăn rò rỉ bộ nhớ trong trường hợp có lỗi khi mở hoặc đọc từ tệp vì nó chịu trách nhiệm đóng tệp trong mọi trường hợp

Phương pháp này về cơ bản không khác so với phương pháp cũ, nhưng nó thường được coi là phương pháp tốt hơn, sạch hơn và an toàn hơn

Bây giờ chúng ta đã loại bỏ các cách tiếp cận “mặc định”, hãy chuyển sang các cách đọc nội dung tệp kỳ lạ hơn

Sử dụng mô-đun hệ thống tệp tích hợp

Các nhà phát triển cho biết Python có một mô-đun cho mọi thứ. Và, không ngạc nhiên, nó cũng có một mô-đun để tương tác với hệ thống tệp có tên là pathlib

Đọc một tệp có pathlib dễ dàng như tạo một đối tượng Path và gọi phương thức read_text[] của nó, không cần phải đóng luồng theo cách thủ công

Mặc dù rất dễ, nhưng thông thường bạn sẽ không tìm thấy cách tiếp cận này trong cơ sở mã Python vì nó yêu cầu nhập một mô-đun

Tiếp theo, chúng ta sẽ xem xét các "hack", hoặc các cách đọc tệp lạ, không mặc định để đạt được mục tiêu cuối cùng

Sử dụng vỏ

Nếu bạn đã từng làm việc với một hệ điều hành giống UNIX, thì chắc chắn bạn đã quen thuộc với lệnh cat tiêu chuẩn. Cái tên này thực sự bắt nguồn từ từ "concatenate" và không liên quan gì đến những con vật cưng dễ thương

Mô-đun subprocess tích hợp cho phép bạn chạy các lệnh trình bao và xử lý đầu ra của chúng từ tập lệnh Python của bạn

Đối với những người sở hữu hệ điều hành Windows, bạn có thể sử dụng lệnh tương tự open[]0 thay thế… hoặc chỉ cần chuyển sang Linux

Nếu bạn nghĩ rằng cách đọc tệp này là bất thường, hãy thắt lưng buộc bụng. chúng ta đang trở nên kỳ lạ hơn

Tạo tiện ích mở rộng C tùy chỉnh

Điều gì sẽ xảy ra nếu bạn không hài lòng với các chức năng tích hợp sẵn của Python? . Để giữ cho bài viết ngắn gọn, tôi sẽ không giải thích toàn bộ quá trình tạo tiện ích mở rộng C cho Python. Nếu bạn muốn tìm hiểu thêm về chủ đề này, hãy xem hướng dẫn này

Trước hết, bạn phải viết phần mở rộng C

Sau đó, bạn tạo tập lệnh open[]1

Cuối cùng, bạn xây dựng và cài đặt tiện ích mở rộng C

python3 setup.py build
python3 setup.py install --user

Bây giờ bạn có thể nhập mô-đun C tùy chỉnh vào tập lệnh Python của mình

Điều này hơi quá phức tạp khi chỉ đọc nội dung của một tệp, phải không?

Xây dựng một máy chủ web để phục vụ tệp

Chúng tôi sẽ sử dụng mô-đun open[]2 tích hợp của Python để chạy một máy chủ web nhỏ để gửi tệp qua HTTP

Ngoài ra, bạn có thể sử dụng thư viện open[]3 để yêu cầu nội dung tệp từ máy chủ

Khá bất thường, phải không?

Brute-force nội dung tập tin

Có thể đọc một tập tin mà không cần mở nó? . Tuy nhiên, để đạt được điều này, chúng tôi không thể mở tệp trực tiếp bằng Python, vì vậy chúng tôi sẽ tận dụng lợi thế của lệnh open[]4 UNIX trả về hàm băm md5 của một tệp đã cho

Khi chúng tôi có tổng kiểm tra, chúng tôi bắt đầu sử dụng vũ lực cho đến khi chúng tôi tìm thấy kết hợp byte chính xác

Cách tiếp cận này là khủng khiếp và tuyệt vời cùng một lúc. Số lượng kết hợp tối đa mà nó phải kiểm tra trước khi tìm đúng nội dung tệp là open[]5 trong đó open[]6 là kích thước của tệp tính bằng byte và open[]7 là số lượng kết hợp có thể có trong một byte

Cho dù phương pháp này kém hiệu quả đến đâu, tập lệnh Python của bạn cuối cùng sẽ đoán nội dung tệp mà không cần đọc nó, trừ khi máy tính của bạn chết trước

Phần kết luận

Tóm lại, có vô số cách để bạn có thể đọc nội dung của một tệp trong Python. Một số có ý nghĩa và nên được sử dụng trong các cơ sở mã thực, trong khi một số khác là các bản hack bí truyền và chỉ nhằm mục đích chứng minh khái niệm hoặc một bài tập viết mã

Tôi hy vọng bạn thích bài viết này. Nếu bạn có bất kỳ cách đọc ưa thích nào khác từ một tệp trong Python, vui lòng chia sẻ nó trong phần nhận xét. Cảm ơn vì đã đọc

Nếu bạn muốn tìm hiểu thêm về các tiện ích mở rộng C cho Python, tôi khuyên bạn nên xem câu chuyện dưới đây

Cách chính xác để mở tệp để đọc bằng Python là gì?

Trong Python, chúng tôi sử dụng phương thức open[] để mở tệp.

Tệp đã đọc [] trong Python là gì?

Phương thức đọc tệp Python[] . Mặc định là -1 có nghĩa là toàn bộ tập tin. returns the specified number of bytes from the file. Default is -1 which means the whole file.

Chế độ chính xác để đọc và viết bằng Python là gì?

Đọc và Viết ['r+' ]. Phương pháp này mở tệp cho cả đọc và ghi. Bắt đầu tệp là nơi đặt tay cầm. Nếu tệp không tồn tại, lỗi I/O sẽ xuất hiện. Chỉ viết ['w']. Chế độ này chỉ mở tệp để ghi.

Chủ Đề