Hướng dẫn read text file python
Show
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 bằng các phương thức như read(), readlines() trong python sau bài học này. Để đọc file txt trong python, chúng ta có các phương pháp sau:
Trước khi đọc file trong PythonĐể đọc file trong python, trước hết chúng ta cần mở file đó bằng hàm open() hoặc bằng câu lệnh with mà Kiyoshi đã hướng dẫn trong bài Mở và đóng file trong python. Lưu ý là tùy thuộc vào mục đích của việc đọc file mà mode dùng để mở file cũng sẽ khác nhau, do vậy chúng ta cần hết sức chú ý khi lựa chọn mode khi mở file. Ở đây, mode đọc file chính là thông tin về những việc cần làm với một file. Các mode có thể dùng để đọc file trong Python như sau:
Thông thường khi mở để đọc file, chúng ta sẽ sử dụng tới mode r trong hàm open() như sau: f = open('myfile.txt', 'r') Hoặc là sử dụng hàm open với câu lệnh with như sau: with open('myfile.txt', 'r') as f: Tuy nhiên do mặc định của f = open('myfile.txt') Nếu bạn muốn mở file này với mã ký tự khác với mã ký tự mặc định trên máy tính của mình, hãy chỉ định thêm đối số f = open('myfile.txt', 'r', encoding='UTF-8') Ngoài ra nếu bạn muốn mở file để vừa đọc và vừa ghi nội dung vào file chẳng hạn, hãy mở file bằng một số mode khác, ví dụ như là mode r+, hoặc a+ chẳng hạn. f = open('myfile.txt',"a+") Trong trường hợp bạn chỉ định sai đường dẫn của file cần mở, hoặc là do file đó không tồn tại, lỗi FileNotFoundError sẽ bị xảy ra: f = open('./scr/other.txt', 'r') Sau khi mở file thành công thì một object file sẽ được trả về. Chúng ta sẽ sử dụng object file này và thực hiện các thao tác đọc file như dưới đây. Đọc toàn bộ file trong python dưới dạng chuỗi bằng phương thức read()Sau khi mở file và thu về object file như trên, chúng ta có thể đọc toàn bộ file đó dưới dạng một chuỗi ký tự bằng cách sử dụng phương thức read() với object file đó. Cú pháp sử dụng sẽ là: f.read(size) Trong đó Ví dụ chúng ta có file
Bạn cũng có thể làm tương tự với câu lệnh with trong Python như sau: with open('myfile.txt') as f: Lưu ý là nội dung file chứa trong object file Hãy xem sự khác biệt khi sử dụng cùng một object file trong ví dụ sau đây: f = open('myfile.txt', 'r', encoding='UTF-8') Kết quả: H Bạn có thể thấy, ở lần đọc đầu tiên đã đọc xong ký tự Lưu ý khi đọc file trong python, nếu mã ký tự được sử dụng trong tệp (ví dụ như mã ascii) khác với mã ký tự được chỉ định trong hàm open(), lỗi UnicodeDecodeError sẽ xảy ra khi chúng ta đọc file. f = open('myfile.txt', 'r', encoding='UTF-8') Do đó, hãy chỉ định chính xác mã ký tự dùng để đọc file giống với mã ký tự sử dụng để lưu file đó nhé. Đọc toàn bộ file trong python dưới dạng list bằng phương thức readlines()Nội dung đọc bao gồm cả ký tự xuống dòngSau khi mở file, chúng ta có thể đọc toàn bộ file đó dưới dạng một list bằng cách sử dụng phương thức readlines() với cú pháp sau đây: f.readlines() Khi đó, toàn bộ file sẽ được đọc, sau đó nội dung từng hàng trong file (bao gồm cả ký tự xuống dòng nếu có) sẽ được lấy ra và được thêm vào danh sách như là một phần tử. Và do đó số phần tử trong list tạo ra cũng chính bằng với số hàng có trong file ban đầu. Ví dụ chúng ta có file Hello World How are you What time is it Chúng ta sẽ đọc toàn bộ file trên dưới dạng list như sau: with open('myfile.txt', 'r') as f: Bạn có thể thấy một list mới gồm 3 phần tử là có giá trị
là nội dung của từng hàng (bao gồm cả ký tự xuống dòng Sau khi đọc nội dung của toàn bộ file dưới dạng list, chúng ta có thể xử lý chúng thông qua các phương thức hoặc hàm xử lý trong list Python. Bạn có thể tìm thấy các cách xử lý list trong python trong chuyên đề List trong python. Ví dụ, chúng ta có thể in từng dòng trong file ban đầu thông qua việc truy cập vào phần tử trong list như sau: with open('myfile.txt', 'r') as f: Kết quả: How are you
Lưu ý là do ký tự xuống dòng được bao gồm trong phần tử của list, nên nếu in chúng ra màn hình thì sẽ xuất hiện các dấu xuống dòng giống như ví dụ trên. Nếu bạn muốn in ra màn hình mà không bị xuống dòng như vậy, hãy tham khảo bài viết in không xuống dòng trong python Nội dung đọc không bao gồm ký tự xuống dòngGiống như ở trên, việc ký tự xuống dòng được lấy từ file trong kết quả sẽ có thể kéo theo nhiều nhầm lẫn khi xử lý. Do đó, phần lớn trong các trường hợp khi đọc file trong python dưới dạng list thì chúng ta cần có thêm xử lý để xoá bỏ ký tự xuống dòng không mong muốn này đi. Và một trong những cách thông dụng nhất, đó chính là sử dụng tới phương thức strip() trong python.
Ví dụ cụ thể: with open('myfile.txt', 'r') as f: Kết quả ['Hello World', 'How are you', 'What time is it'] Trong dòng code trên, chúng ta đã sử dụng tới List comprehension trong python để viết code cho gọn. Bạn có thể tìm hiểu thêm về cách viết này tại bài viết List comprehension trong python. Nếu bạn còn bỡ ngỡ với List comprehension, hãy sử dụng tới cách viết truyền thống sau đây: with open('myfile.txt', 'r') as f: Đọc từng dòng file txt trong Python bằng phương thức readline()Đọc từng dòng file txtNếu bạn không muốn đọc toàn bộ file mà muốn đọc từng dòng file trong Python, hãy sử dụng phương thức readline() với cú pháp sau đây: f.readline() Phương thức readline() sẽ đọc từng dòng file cho đến vị trí xuống dòng(xuất hiện ký tự xuống dòng
Cách đọc từng dòng file txt trong python bằng phương thức readline() như ví dụ sau đây. Chúng ta sẽ sử dụng file Hello World How are you What time is it f = open('myfile.txt', 'r') Bạn cũng có thể làm tương tự với lệnh with như sau: with open('myfile.txt', 'r') as f: Trong ví dụ trên, do chúng ta chạy readline() một lần nên chỉ có dòng đầu tiên của file đã được đọc. Đọc từng dòng file txt cho tới cuối filePhương thức readline() chỉ giúp đọc một dòng trong file một lần duy nhất, do đó nếu muốn đọc từng dòng file txt trong python cho đến cuối file, chúng ta cần tạo ra vòng lặp và đọc lần lượt từng dòng trong file đó bằng readline() như sau: f = open('myfile.txt', 'r') Cách viết trên dựa vào việc nếu readline() đọc tới cuối file thì ký tự trống Nếu không dùng tới phương thức readline(), bạn cũng có thể đọc từng dòng file trong python với lệnh For như sau: with open('myfile.txt', 'r') as f: Cả hai cách viết đều đưa ra cùng kết quả như sau: Hello World Bạn có thể thấy, giống như với phương thức readlines() thì ký tự xuống dòng sẽ bao gồm trong kết quả, do đó khi in ra màn hình sẽ có hai lần được in xuống dòng như ở kết quả của ví dụ ở trên. Xoá ký tự xuống dòng trong nội dung đọcMặc dù khi đọc từng dòng trong file thì kết quả đọc sẽ bao gồm cả ký tự xuống dòng, tuy nhiên chúng ta cũng có thể dễ dàng xóa đi ký tự xuống dòng này bằng cách sử dụng kèm phương thức strip() giống như ví dụ dưới đây: with open('myfile.txt', 'r') as f: Hoặc là f = open('myfile.txt', 'r') Cả hai cách viết đều đưa ra cùng kết quả như sau: Hello World Tổng kếtTrên đây Kiyoshi đã hướng dẫn bạn về cách đọc file trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé. Và hãy cùng tìm hiểu các kiến thức về Python trong các bài viết sau. Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a> và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> Bài viết liên quanHãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam! HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>16. xử lý file trong python
Profile Tác giả : Kiyoshi (Chis Thanh) Kiyoshi là một
cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.
Bài Viết Liên QuanQuảng CáoCó thể bạn quan tâmCách sửa lỗi trong speakers properties ko hiện enhancement năm 20241 tháng trước . bởi MilitaryTracingToplist được quan tâm#1
Top 7 sự tích hồ gươm - ngữ văn lớp 6 20235 tháng trước#2
Top 7 gdcd 6 bài 1 kết nối tri thức 20235 tháng trước#3
Top 7 ý nghĩa của xây dựng gia đình văn hóa 20235 tháng trước#4
Top 6 mẫu hợp đồng mượn đất làm nhà xưởng 20235 tháng trước#5
Top 3 tổng tài biến thái tôi yêu anh tập 27 20235 tháng trước#6
Top 6 kết thực phim mỹ nhân vô lệ 20235 tháng trước#7
#8
Top 8 đề tài và chủ de của tác phẩm tắt đèn 20235 tháng trước#9
Top 5 tiểu sử của thầy thích pháp hòa 20235 tháng trướcQuảng cáoXem NhiềuBánh rau câu sinh nhật chứa bao nhiêu calo năm 20241 tuần trướcTự học tiếng anh như thế nào hiệu quả năm 20241 tuần trướcBài tập tìm hằng số cân bằng hoá 11 năm 20244 ngày trướcHọ tiếng nhật của bạn là gì năm 20241 tuần trướcBăn khoăn có nghĩa là gì năm 20245 ngày trướcTìm hiểu chung về văn bản nghị luận năm 20242 ngày trướcAnh bộ đội cụ hồ gốc bỉ là gì năm 20241 ngày trướcCơ thể con người năm hiến máu bao nhiêu lần năm 20241 tuần trướcÝ nghĩa của header from top là gì năm 20241 tuần trướcQuảng cáoChúng tôiTrợ giúpBản quyền © 2021 Học Tốt Inc.
|