Bạn trả lại
Python C C++ Java Kotlin05, nhưng sau đó vứt nó đi ngay lập tức khi bạn không gán cuộc gọi của
Python C C++ Java Kotlin06 cho bất kỳ thứ gì
result = read_file[...]
Bây giờ
Python C C++ Java Kotlin07 đã có danh sách hồ sơ của bạn
Tuy nhiên, xin lưu ý rằng những gì bạn dự định làm là chuyển một danh sách dựng sẵn vào hàm và để nó tổng hợp kết quả ở đó. Bạn có thể làm điều đó, nhưng đó gần như chắc chắn không phải là điều bạn muốn làm. Chỉ cần xóa dòng đó trong định nghĩa hàm
Chúng ta đã thấy trong Hướng dẫn xử lý tệp Python của mình rằng cách chúng ta có thể thực hiện các thao tác khác nhau trong và trên một tệp bằng cách sử dụng lập trình Python
Một trong những thao tác là đọc từ tệp đã được tạo. Ở đây chúng ta sẽ giải thích chi tiết về quy trình và xem xét các phương pháp khác nhau mà chúng ta có thể đọc một tệp trực tiếp bằng Python
Các phương pháp khác nhau để đọc từ một tệp trong Python
Trước khi chuyển ngay sang các phương pháp đọc tệp, chúng ta phải quan tâm đến một số điều. Trước hết, để đọc, sự tồn tại của tệp là rất quan trọng. Thứ hai, chế độ mở tệp cũng quan trọng. Có nhiều chế độ khác nhau trong đó một tệp có thể được mở trong lập trình Python, cụ thể là,
Python C C++ Java Kotlin
08 – chỉ đọcPython C C++ Java Kotlin
09 – chỉ viếtPython C C++ Java Kotlin
0– chỉ nối thêmPython C C++ Java Kotlin
1 – đọc cũng như viếtPython C C++ Java Kotlin
2 – viết cũng như đọcPython C C++ Java Kotlin
3 – nối thêm cũng như đọc
Trong số tất cả các chế độ khác nhau có sẵn để mở tệp, nội dung tệp có thể ở chế độ chỉ đọc ở chế độ
Python C C++ Java Kotlin08,
Python C C++ Java Kotlin1,
Python C C++ Java Kotlin2 và
Python C C++ Java Kotlin3. Sau khi chúng tôi chắc chắn rằng một tệp tồn tại và mở nó ở chế độ có thể đọc được, chúng tôi có thể đi xa hơn đến các chức năng hoặc phương thức khác nhau được sử dụng để đọc nội dung tệp
1. đọc [] bằng Python
Phương thức
Python C C++ Java Kotlin8 trong Python là một hàm được xác định trước, trả về dữ liệu đã đọc ở dạng chuỗi. Cú pháp của phương thức
Python C C++ Java Kotlin8 là,
file_open_object. đọc [ n ]
Trong đó file_open_object là đối tượng được tạo trong khi mở một tệp cụ thể,
và 'n' là số byte được đọc từ tệp. Trong trường hợp n không được chỉ định, hàm
Python C C++ Java Kotlin8 sẽ đọc toàn bộ tệp
Coi nội dung cần đọc thuộc về tệp hình trên, có tên new_file. txt. Do đó, sử dụng
Python C C++ Java Kotlin8, chúng ta có thể đọc thông tin có trong new_file. Hãy để chúng tôi xem làm thế nào chúng ta có thể làm điều đó,
Python C C++ Java Kotlin2
đầu ra
Python C C++ Java Kotlin
Một lần nữa để đọc một số byte cụ thể, chúng ta có thể sử dụng
Python C C++ Java Kotlin8 theo cách sau,
Python C C++ Java Kotlin5
đầu ra
Python C C++ Java Kotlin6
2. dòng đọc [] trong Python
Python C C++ Java Kotlin53 là một phương thức được xác định trước khác trong Python, trả về một dòng đã đọc ở dạng chuỗi. Dưới đây là cú pháp của hàm
Python C C++ Java Kotlin53,
file_open_object. dòng đọc[ n ]
Tương tự, ở đây file_open_object là đối tượng được tạo khi mở tệp và ‘n’ là số byte mà hàm sẽ đọc gần hết. Đáng chú ý, nếu n vượt quá độ dài của một dòng, hàm sẽ không xem xét dòng tiếp theo. Hãy xem xét kỹ hơn việc sử dụng chức năng,
Python C C++ Java Kotlin9
đầu ra
Python C C++ Java Kotlin0
Điểm chú ý. Ở đây dòng mới [
Python C C++ Java Kotlin55] cũng được coi là một ký tự
3. đường đọc [] Trong Python
Python C C++ Java Kotlin56 đọc tất cả các dòng có trong một tệp đã chỉ định và trả về một danh sách chứa các dạng chuỗi của các dòng đã đọc. Đưa ra dưới đây là cú pháp,
Tập tin ở khắp mọi nơi. trên máy tính, thiết bị di động và trên đám mây. Làm việc với các tệp là điều cần thiết đối với mọi lập trình viên, bất kể bạn đang sử dụng ngôn ngữ lập trình nào
Xử lý tệp là một cơ chế để tạo tệp, ghi dữ liệu và đọc dữ liệu từ tệp. Tin vui là Python được làm giàu với các gói để xử lý các loại tệp khác nhau
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xử lý các loại tệp khác nhau. Tuy nhiên, chúng tôi sẽ tập trung nhiều hơn vào việc đọc tệp bằng Python
Sau khi bạn hoàn thành hướng dẫn này, bạn sẽ biết cách thực hiện những điều sau
- Mở tệp và sử dụng trình quản lý ngữ cảnh
Python C C++ Java Kotlin
34 - Chế độ tệp trong Python
- Đọc văn bản
- Đọc tệp CSV
- Đọc tệp JSON
Hãy đi sâu vào
Mở một tệp
Trước khi truy cập nội dung của một tệp ta cần mở tệp. Python cung cấp sẵn một hàm giúp chúng ta mở file ở các chế độ khác nhau. Hàm
Python C C++ Java Kotlin35 chấp nhận hai tham số cần thiết. tên tệp và chế độ; . Các chế độ xác định cách chúng tôi có thể truy cập tệp và cách chúng tôi có thể thao tác với nội dung của nó. Hàm
Python C C++ Java Kotlin35 cung cấp một vài chế độ khác nhau mà chúng ta sẽ thảo luận sau trong hướng dẫn này
Đầu tiên, hãy thử chức năng bằng cách mở một tệp văn bản. Tải xuống tệp văn bản chứa Zen of Python và lưu trữ tệp đó trong cùng đường dẫn với mã của bạn
Python C C++ Java Kotlin7____23
Trong đoạn mã trên, hàm
Python C C++ Java Kotlin35 mở tệp văn bản ở chế độ đọc, cho phép chúng tôi lấy thông tin từ tệp mà không vô tình thay đổi nó. Ở dòng đầu tiên, đầu ra của hàm
Python C C++ Java Kotlin35 được gán cho biến
Python C C++ Java Kotlin10, một đối tượng đại diện cho tệp văn bản. Trong dòng thứ hai của mã ở trên, chúng tôi sử dụng phương pháp
Python C C++ Java Kotlin11 để đọc toàn bộ tệp và in nội dung của nó. Phương thức
Python C C++ Java Kotlin12 đóng tệp ở dòng cuối cùng. Chúng tôi phải luôn đóng các tệp đã mở sau khi hoàn thành chúng để giải phóng tài nguyên máy tính của chúng tôi và tránh đưa ra các ngoại lệ
Trong Python, chúng ta có thể sử dụng trình quản lý ngữ cảnh
Python C C++ Java Kotlin34 để đảm bảo chương trình giải phóng các tài nguyên được sử dụng sau khi đóng tệp, ngay cả khi đã xảy ra ngoại lệ. Hãy thử nó
Python C C++ Java Kotlin5
Python C C++ Java Kotlin3
Đoạn mã trên tạo ngữ cảnh bằng cách sử dụng câu lệnh
Python C C++ Java Kotlin34 rằng đối tượng tệp không còn mở ngoài ngữ cảnh. Biến ràng buộc,
Python C C++ Java Kotlin10, đại diện cho đối tượng tệp mà tất cả các phương thức của đối tượng tệp đều có thể truy cập thông qua biến. Phương thức
Python C C++ Java Kotlin11 đọc toàn bộ tệp ở dòng thứ hai, sau đó hàm
Python C C++ Java Kotlin17 xuất nội dung tệp
Khi chương trình đến cuối ngữ cảnh khối câu lệnh
Python C C++ Java Kotlin34, nó sẽ đóng tệp để giải phóng tài nguyên và đảm bảo rằng các chương trình khác có thể sử dụng chúng. Nói chung, sử dụng câu lệnh
Python C C++ Java Kotlin34 là một phương pháp rất được khuyến khích khi bạn đang làm việc với các đối tượng cần đóng ngay khi chúng không còn cần thiết, chẳng hạn như tệp, cơ sở dữ liệu và kết nối mạng
Lưu ý rằng chúng tôi có quyền truy cập vào biến
Python C C++ Java Kotlin10 ngay cả sau khi thoát khỏi khối trình quản lý ngữ cảnh
Python C C++ Java Kotlin34; . Hãy thử một số thuộc tính của đối tượng tệp để xem liệu biến đó có còn tồn tại và có thể truy cập được không
Python C C++ Java Kotlin1
Python C C++ Java Kotlin6
Tuy nhiên, không thể đọc từ tệp hoặc ghi vào tệp. Khi một tệp bị đóng, mọi nỗ lực truy cập nội dung của nó đều dẫn đến lỗi sau
Python C C++ Java Kotlin7
Python C C++ Java Kotlin8
Chế độ tệp trong Python
Như chúng tôi đã đề cập trong phần trước, chúng tôi cần chỉ định chế độ trong khi mở tệp. Bảng sau đây cho thấy các chế độ tệp khác nhau trong Python
Chế độ Mô tảPython C C++ Java Kotlin36Nó mở tệp chỉ để đọc.
Python C C++ Java Kotlin63Nó mở một tập tin để viết. Nếu tệp tồn tại, nó sẽ ghi đè lên nó, nếu không, nó sẽ tạo một tệp mới.
Python C C++ Java Kotlin64Nó mở một tệp chỉ để nối thêm. Nếu tệp không tồn tại, nó sẽ tạo tệp.
Python C C++ Java Kotlin65Nó tạo một tệp mới. Nếu tệp tồn tại, nó không thành công.
Python C C++ Java Kotlin66Nó mở một tệp để cập nhật
Chúng tôi cũng có thể chỉ định mở tệp ở chế độ văn bản,
Python C C++ Java Kotlin67, chế độ mặc định hoặc chế độ nhị phân,
Python C C++ Java Kotlin68. Hãy xem cách chúng ta có thể sao chép tệp hình ảnh, dataquest_logo. png, sử dụng các câu lệnh đơn giản
Python C C++ Java Kotlin6
Đoạn mã trên sao chép hình ảnh logo Dataquest và lưu trữ nó trong cùng một đường dẫn. Chế độ
Python C C++ Java Kotlin69 mở tệp để đọc ở chế độ nhị phân và chế độ
Python C C++ Java Kotlin70 mở tệp để ghi ở chế độ văn bản
Đọc tệp văn bản
Có nhiều cách khác nhau để đọc tệp văn bản. Phần này sẽ xem xét một số phương pháp hữu ích để đọc nội dung của tệp văn bản
Cho đến giờ, chúng ta đã biết toàn bộ nội dung của một tệp có thể được đọc bằng phương thức
Python C C++ Java Kotlin11. Điều gì sẽ xảy ra nếu chúng ta chỉ muốn đọc một vài byte từ tệp văn bản. Để làm điều đó, hãy chỉ định số byte trong phương thức
Python C C++ Java Kotlin11. Hãy thử nó
Python C C++ Java Kotlin1
Python C C++ Java Kotlin30
Đoạn mã đơn giản ở trên đọc 17 byte đầu tiên của zen_of_python. txt và in chúng ra
Đôi khi, việc đọc nội dung của tệp văn bản từng dòng một sẽ có ý nghĩa hơn. Trong trường hợp này, chúng ta có thể sử dụng phương pháp
Python C C++ Java Kotlin73. Hãy làm nó
Python C C++ Java Kotlin31
Python C C++ Java Kotlin32
Đoạn mã trên trả về dòng đầu tiên của tệp. Nếu chúng ta gọi phương thức một lần nữa, nó sẽ trả về dòng thứ hai trong tệp, v.v. , như sau
Python C C++ Java Kotlin33
Python C C++ Java Kotlin34
Phương pháp hữu ích này giúp chúng tôi đọc toàn bộ tệp dần dần. Đoạn mã sau xuất toàn bộ tệp bằng cách lặp lại từng dòng cho đến khi con trỏ tệp theo dõi vị trí chúng tôi đang đọc hoặc ghi tệp đến cuối tệp. Khi phương thức
Python C C++ Java Kotlin73 đến cuối tệp, nó sẽ trả về một chuỗi rỗng,
Python C C++ Java Kotlin75. với open[‘zen_of_python. txt'] dưới dạng f
Python C C++ Java Kotlin35
Python C C++ Java Kotlin3
Đoạn mã trên đọc dòng đầu tiên của tệp bên ngoài vòng lặp while và gán nó cho biến
Python C C++ Java Kotlin76. Bên trong vòng lặp while, nó in chuỗi được lưu trữ trong biến
Python C C++ Java Kotlin76, sau đó đọc dòng tiếp theo của tệp. Vòng lặp while lặp lại quy trình cho đến khi phương thức
Python C C++ Java Kotlin73 trả về một chuỗi rỗng. Chuỗi trống đánh giá là
Python C C++ Java Kotlin79 trong vòng lặp while, do đó quá trình lặp kết thúc
Phương pháp hữu ích khác để đọc tệp văn bản là phương pháp
Python C C++ Java Kotlin80. Áp dụng phương thức này trên một đối tượng tệp sẽ trả về một danh sách các chuỗi chứa từng dòng của tệp. Hãy xem nó hoạt động như thế nào
Python C C++ Java Kotlin37
Hãy kiểm tra kiểu dữ liệu của biến
Python C C++ Java Kotlin81 rồi in ra
Python C C++ Java Kotlin38
Python C C++ Java Kotlin39
Đó là danh sách các chuỗi trong đó mỗi mục trong danh sách là một dòng của tệp văn bản. Ký tự thoát
Python C C++ Java Kotlin82 đại diện cho một dòng mới trong tệp. Ngoài ra, chúng tôi có thể truy cập mọi mục trong danh sách bằng cách lập chỉ mục hoặc cắt hoạt động
Python C C++ Java Kotlin50
Python C C++ Java Kotlin51
Đọc tệp CSV
Cho đến giờ, chúng ta đã học cách làm việc với các tệp văn bản thông thường. Tuy nhiên, đôi khi dữ liệu có định dạng CSV và các chuyên gia dữ liệu thường truy xuất thông tin cần thiết và thao tác với nội dung của tệp CSV
Chúng tôi sẽ sử dụng mô-đun CSV trong phần này. Mô-đun CSV cung cấp các phương pháp hữu ích để đọc các giá trị được phân tách bằng dấu phẩy được lưu trữ trong tệp CSV. Chúng tôi sẽ thử ngay bây giờ, nhưng trước tiên, bạn cần tải xuống tệp
Python C C++ Java Kotlin83 và lưu trữ tệp đó trong thư mục làm việc hiện tại
Python C C++ Java Kotlin52
Python C C++ Java Kotlin53
Mỗi hàng của tệp CSV tạo thành một danh sách trong đó có thể dễ dàng truy cập mọi mục, như sau
Python C C++ Java Kotlin54
Python C C++ Java Kotlin55
Có thể sử dụng tên của các cột thay vì sử dụng các chỉ mục của chúng, điều này thường thuận tiện hơn cho các nhà phát triển. Trong trường hợp này, thay vì sử dụng phương thức
Python C C++ Java Kotlin84, chúng tôi sử dụng phương thức
Python C C++ Java Kotlin85 trả về một tập hợp các đối tượng từ điển. Hãy thử nó
Python C C++ Java Kotlin56
Python C C++ Java Kotlin57
Đọc tệp JSON
Một định dạng tệp phổ biến khác mà chúng tôi chủ yếu sử dụng để lưu trữ và trao đổi dữ liệu là JSON. JSON là viết tắt của JavaScript Object Notation và nó cho phép chúng ta lưu trữ dữ liệu với các cặp khóa-giá trị được phân tách bằng dấu phẩy
Trong phần này, chúng ta sẽ tải một tệp JSON và làm việc với nó dưới dạng đối tượng JSON — không phải dưới dạng tệp văn bản. Để làm điều đó, chúng ta cần nhập mô-đun JSON. Sau đó, trong trình quản lý ngữ cảnh
Python C C++ Java Kotlin34, chúng tôi sử dụng phương thức
Python C C++ Java Kotlin87 thuộc về đối tượng
Python C C++ Java Kotlin88. Nó tải nội dung của tệp và lưu trữ nó trong biến
Python C C++ Java Kotlin89 dưới dạng từ điển. Hãy thử nó, nhưng trước khi chạy mã, hãy tải xuống tệp
Python C C++ Java Kotlin60 và đặt nó vào thư mục làm việc hiện tại
Python C C++ Java Kotlin58
Python C C++ Java Kotlin59
Hãy kiểm tra kiểu dữ liệu của biến
Python C C++ Java Kotlin61
Python C C++ Java Kotlin30
Python C C++ Java Kotlin31
Kiểu dữ liệu của nó là từ điển. Vì vậy, chúng tôi có thể truy cập từng phần thông tin được lưu trữ trong tệp JSON bằng khóa của nó. Hãy xem làm thế nào chúng ta có thể lấy dữ liệu từ nó
Python C C++ Java Kotlin32
Python C C++ Java Kotlin33
Phần kết luận
Hướng dẫn này đã thảo luận về xử lý tệp bằng Python, tập trung vào việc đọc nội dung của tệp. Bạn đã tìm hiểu về hàm tích hợp open[], trình quản lý ngữ cảnh và cách đọc các loại tệp phổ biến như văn bản, CSV và JSON
hướng dẫn python
Giới thiệu về tác giả
Mehdi Lotfinejad
Mehdi là Kỹ sư dữ liệu cao cấp và Trưởng nhóm tại ADA. Anh ấy là một huấn luyện viên chuyên nghiệp, người thích viết các hướng dẫn phân tích dữ liệu