Đọc tập tin txt python
Python cung cấp các hàm có sẵn để đọc tệp tin vào chương trình. Có hai loại tệp có thể được đọc trong chương trình Python, đó là. file text và file nhị phân Show
Python cung cấp cho chúng ta hàm read() để sử dụng trong việc đọc dữ liệu có trong một File. Nhưng trước khi sử dụng hàm read() để đọc dữ liệu của File, hãy đảm bảo rằng bạn đã mở File trong chương trình Python bằng cách sử dụng hàm open() trong Python Ví dụ đơn giản dưới đây, sử dụng hàm open() để mở một tệp văn bản có phần mở rộng. txt và sử dụng hàm read() để đọc dữ liệu trong Tệp Tệp văn bản này sẽ có tên là laptrinhtudau. txt và đường dẫn là “D. \laptrinhtudau. txt” trong Tệp này sẽ có nội dung như bên dưới Dưới đây là chương trình, sử dụng hàm open() với mode “r” (chế độ chỉ đọc) sau đó sử dụng hàm read() để đọc dữ liệu có trong File laptrinhtudau. txt # Mo File voi che do "r" f = open("D:\laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close() Nếu như Tệp cần đọc được đặt cùng thư mục với tệp Python đang chứa chương trình đang được thực thi, khi đó ta chỉ cần sử dụng đường dẫn laptrinhtudau. txt trong hàm open() # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close() Kết quả Xin chao, toi la laptrinhtudau. com. 2. Đọc từng dòng của tệp trong PythonTrong một tệp có thể có nhiều hơn 1 dòng dữ liệu. Khi đó, để đọc từng dòng có trong File ta cần sử dụng hàm readline() để thực hiện công việc này Một ví dụ về cách sử dụng hàm readline() để đọc từng dòng dữ liệu có trong File “D. \yeulaptrinh. txt” bên dưới
Chương trình dưới đây, sử dụng hàm readline() để đọc dữ liệu của dòng đầu tiên có trong File on as after # Doc File voi che do "r" f = open("D:\yeulaptrinh.txt", "r") # Doc du lieu dong dau tien trong file va hien thi print(f.readline()) # Dong File f.close() Kết quả Xin chaoTo read two first line has in File on, khi đó ta chỉ cần gọi hai lần hàm readline() như sau # Doc File voi che do "r" f = open("D:\yeulaptrinh.txt", "r") # Doc du lieu dong dau tien va dong thu 2 trong file va hien thi print(f.readline()) print(f.readline()) # Dong File f.close() Kết quả Xin chàotôi là Nam Trong trường hợp bạn cần đọc tất cả các dòng có trong Tệp trên, khi đó ta chỉ cần sử dụng vòng lặp cho và duyệt qua Tệp đó như sau # Doc File voi che do "r" f = open("D:\yeulaptrinh.txt", "r") # Doc tat ca cac dong trong File for x in f: print(x) # Dong File f.close() Kết quả Xin chàotôi là Nam nam nay toi 20 tuoi toi yeu lap trinh. 3. Đọc ký tự của tệp trong Python Theo mặc định, hàm read() khi được gọi nó sẽ trả về toàn bộ dữ liệu có trong File, nhưng bạn cũng có thể chỉ số lượng ký tự muốn trả về Ví dụ ta chỉ cần đọc và hiển thị ra 8 ký tự đầu tiên trong File “D. \laptrinhtudau. txt”, khi đó ta sẽ cần sử dụng hàm read() như sau # Mo File voi che do "r" f = open("D:\laptrinhtudau.txt", "r") # Doc 8 ky tu dau tien trong File va hien thi print(f.read(8)) # Dong File f.close() Kết quả Xin chaoKhi truyền vào hàm read() một số âm (ví dụ là -1) hoặc truyền vào một số quá lớn, khi đó hàm read() sẽ thực hiện đọc tất cả các ký tự trong File đó Đọc tệp ghi trong Python hoặc trong bất kỳ ngôn ngữ nào khác là một thao tác thường xuyên được sử dụng trong quá trình làm việc. Bài viết này sẽ hướng dẫn bạn chi tiết cách đọc file trong Python và ghi file trong Python. Ngoài ra, mình cũng sẽ chia sẻ cách đọc cấu trúc từ điển ra file JSON NỘI DUNG BÀI VIẾT Đọc tệp ghi trong PythonQuá trình đọc tệp ghi trong Python trải qua 3 bước. Mở tệp, Đọc hoặc ghi tệp và cuối cùng là đóng tệp. Nhưng trước tiên, chúng ta sẽ xem xét các chế độ khi làm việc với tệp trong Python nhé Chế độ truy cập tệp trong PythonKhá giống với các ngôn ngữ khác, việc đọc tệp ghi trong Python cũng có các chế độ làm việc tương ứng Chế độGiải thíchChỉ đọc ('r')Chế độ mặc định khi mở tệp. Ở chế độ này, tệp được mở ở chế độ chỉ được phép đọc dữ liệu và con trỏ tệp bắt đầu ở vị trí tệp đầu. Nếu tệp không tồn tại, sẽ xảy ra lỗi FileNotFoundError ngoại lệ. Read & Write (‘r+’)Mở file cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ xảy ra lỗi FileNotFoundError ngoại lệ. Chỉ ghi (‘w’)Mở tệp và chỉ cho phép ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo tệp mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới. Write & Read (‘w+’)Mở tệp cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo tệp mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới. Append Only (‘a’)Mở tệp cho phép ghi. Tập tin sẽ được tạo mới nếu không tồn tại. Con trỏ tệp sẽ ở cuối tệp nên sẽ tiếp tục ghi dữ liệu vào cuối nếu dữ liệu ban đầu đã bị cấm. Append and Read (‘a+’)Mở tệp cho phép ghi và đọc. Tập tin sẽ được tạo mới nếu không tồn tại. Con trỏ tệp sẽ ở cuối tệp nên sẽ tiếp tục ghi dữ liệu vào cuối nếu dữ liệu ban đầu đã bị cấmMở tệp trong PythonĐể mở tệp trong Python, chúng tôi không cần phải nhập thêm bất kỳ thư viện nào, chúng tôi sẽ sử dụng hàm 1 file_object = mở(r'đường_dẫn_tới_file', 'mode') Lưu ý. Ký tự r trước đường dẫn đến tệp giúp bỏ qua các ký tự đặc biệt của chuỗi trong Python. Không có giới hạn, nếu không có ký tự Ví dụ 1 2 3 4 5 6 7 8 9 10 # open file to read, mode = 'r' rf = mở('data. txt', 'r') # hoặc rf = mở('data. txt')
# open file to write wf = mở('data. txt', 'w')
# open file to write to end wf = mở('data. txt', 'a') Đóng tệp trong PythonSử dụng hàm # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()0 để đóng đối tượng tệp khi bạn đã hoàn thành công việc với nó. Hãy luôn nhớ đóng tệp sau khi hoàn thành công việc nếu không muốn phát sinh các vấn đề không mong muốn Ví dụ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # open file to read, mode = 'r' rf = mở('data. txt', 'r') # hoặc rf = mở('data. txt') # đóng hồ sơ rf. đóng()
# open file to write wf = mở('data. txt', 'w') # đóng hồ sơ wf. đóng()
# open file to write to end wf = mở('data. txt', 'a') # đóng hồ sơ wf. đóng() Một cách linh hoạt hơn (nên sử dụng) khi làm việc với tệp mà không cần phải lo khi đóng tệp nào. Hãy sử dụng từ khóa # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()1 như sau 1 2 3 4 5 # Python will auto close file for you với mở('/home/user/data. txt', 'r') as fp: # làm smt
# tiếp tục các khối lệnh khác Đọc tệp trong PythonPython cung cấp cho bạn 3 cách khác nhau để đọc nội dung từ tập tin. Mình sẽ đi trực tiếp vào ví dụ để các bạn có thể hiểu & áp dụng được ngay Đọc toàn bộ tập tin chuỗiSử dụng hàm # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()2 để đọc toàn bộ tệp nội dung vào 1 biến chuỗi 1 2 3 4 5 với mở('dữ liệu. txt') như rf. nội dung = rf. đọc() in(nội dung) nội dung = nội dung + "\n\nTừ in(nội dung) Kết quả nhận được (cũng chính là tệp nội dung # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Cố định size Can only known size during khai báo Thay đổi kích thước trong quá trình thêm/ xóa phần tử Kích thước tối đa phụ thuộc vào bộ nhớ typedef was used todefine a data type in C malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc Cố định size Can only known size during khai báo Thay đổi kích thước trong quá trình thêm/ xóa phần tử Kích thước tối đa phụ thuộc vào bộ nhớ typedef was used todefine a data type in C malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc
Từ LTKK với tình yêu Đọc từng dòng của tệpUse function # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()4 will return 1 lines of file. Chúng ta có thể duyệt qua từng dòng nội dung của tệp như sau 1 2 3 4 5 6 7 với mở('dữ liệu. txt') như rf. dòng = rf. đường đọc() chỉ mục = 1 while dòng. in('Dòng {}. {}'. định dạng(chỉ mục, dòng)) chỉ mục += 1 dòng = rf. đường đọc() Kết quả 1 2 3 4 5 6 7 8 9 10 11 12 13 Dòng 1. Cố định size
Dòng 2. Can only known size during khai báo
dòng 3. Thay đổi kích thước trong quá trình thêm/ xóa phần tử
dòng 4. Kích thước tối đa phụ thuộc vào bộ nhớ
Dòng 5. typedef was used todefine a data type in C
Dòng 6. malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new
dòng 7. sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc Hàm # Mo File voi che do "r" f = open("laptrinhtudau.txt", "r") # Doc du lieu co trong File va hien thi print(f.read()) # Dong File f.close()4 sẽ đọc 1 dòng, bao gồm cả ký tự dòng mới (‘\n’). Nên khi ra, mỗi dòng có thể có 1 dòng trống ở phía dưới như kết quả ở trên Đọc toàn bộ tập tin ra danh sáchVẫn là đọc toàn bộ tệp nhưng hàm 1 2 3 4 với mở('dữ liệu. txt') như rf. dòng = rf. đường đọc() cho idx, dòng in enumerate(lines): in(idx, line) Kết quả 1 2 3 4 5 6 7 8 9 10 11 12 13 0 Cố định kích thước
1 Can just known size during khai báo
2 Kích thước thay đổi trong quá trình thêm/ xóa phần tử
3 Kích thước tối đa phụ thuộc vào bộ nhớ
4 typedef được dùng để định nghĩa một kiểu dữ liệu trong C
5 malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new
6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc Lưu ý. Bạn có thể sử dụng hàm Ghi file trong PythonĐể ghi tệp trong Python, chúng ta có thể sử dụng hàm 1 2 3 4 5 6 7 8 9 10 11 12 văn bản = [ "0 Kích thước cố định", "1 Can just known size in when khai báo", "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử", "3 Kích thước tối đa phụ thuộc vào bộ nhớ", "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ", "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new", "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc" ] với mở('dữ liệu. txt', 'w') as wf: đối với văn bản trong văn bản: wf. viết(văn bản + ') hoặc 1 2 3 4 5 6 7 8 9 10 11 văn bản = [ "0 Kích thước cố định", "1 Can just known size in when khai báo", "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử", "3 Kích thước tối đa phụ thuộc vào bộ nhớ", "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ", "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new", "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc" ] với mở('dữ liệu. txt', 'w') as wf: wf. dòng viết(văn bản) Lưu ý Hàm 1 0 Kích thước cố định1 Cần chỉ định kích thước khi khai báo2 Kích thước thay đổi trong quá trình thêm/xóa phần tử3 Kích thước tối đa phụ thuộc vào bộ nhớ4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. 5 malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc Ghi dữ liệu vào cuối tập tinChúng ta chỉ cần thay đổi chế độ từ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 văn bản = [ "0 Kích thước cố định", "1 Can just known size in when khai báo", "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử", "3 Kích thước tối đa phụ thuộc vào bộ nhớ", "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ", "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new", "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc" ] với mở('dữ liệu. txt', 'w') as wf: đối với văn bản trong văn bản: wf. viết(văn bản + ')
với mở('dữ liệu. txt') như wr. in("Số dòng. ", len(wr. đường đọc()))
# Ghi tập tin vào cuối với mở('dữ liệu. txt', 'a') as wf: wf. viết('=> Từ LTKK với tình yêu')
với mở('dữ liệu. txt') như wr. văn bản = wr. đường đọc() in("Số dòng. ", len(văn bản)) in(văn bản) Kết quả 1 2 3 Số dòng. 7 Số dòng. số 8 ['0 Kích thước cố định\n', '1 Cần chỉ định kích thước khi khai báo\n', '2 Kích thước thay đổi trong quá trình thêm/ xóa phần tử\n', '3 Kích thước tối đa . \n', '5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new\n', '6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc\n', '=> From LTKK with love'] [sc_] Đọc ghi JSON từ tệpTrong phần này, chúng ta sẽ làm việc với tệp JSON sử dụng ngôn ngữ Python. Giả sử chúng ta có tệp JSON như sau Cách đọc tệp JSON1 2 3 4 5 6 nhập json
với mở('khách hàng. json') as wr. khách hàng = json. tải(wr) dành cho khách hàng trong khách hàng: in(khách hàng, type(customer)) Kết quả 1 2 {'id': 1, 'email': '[email protected]', 'first': 'Torrey', 'last': 'Veum', 'company': 'Hilll, Mayert and Wolf', 'created_at': '2014-12-25T04:06:27.981Z', 'country': 'Switzerland'} {'id': 2, 'email': '[email protected]', 'first': 'Micah', 'last': 'Sanford', 'company': 'Stokes-Reichel', 'created_at': '2014-07-03T16:08:17.044Z', 'country': "Democratic People's Republic of Korea"} Ghi từ điển dữ liệu ra tệp JSON1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 nhập json
khách hàng = [ { "id". 1, "email". "[email được bảo vệ]", "đầu tiên". "Torrey", "cuối cùng". "Veum", "công ty". "Hilll, Mayert và Wolf", "created_at". "2014-12-25T04. 06. 27. 981Z", "quốc gia". "Thụy Sĩ" }, { "id". 2, "email". "[email được bảo vệ]", "đầu tiên". "Mi-ca", "cuối cùng". "Sanford", "công ty". "Stokes-Reichel", "created_at". "2014-07-03T16. 08. 17. 044Z", "quốc gia". "Cộng hòa Dân chủ Nhân dân Triều Tiên" } ]
với mở('khách hàng. json', 'w') as wr: json. kết xuất(khách hàng, wr) Lưu ý
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 nhập json
khách hàng = [ { "id". 1, "email". "[email được bảo vệ]", "đầu tiên". "Hiếu", "cuối cùng". "Nguyễn Văn", "công ty". "Zalo", "created_at". "2014-12-25T04. 06. 27. 981Z", "quốc gia". "Việt Nam" }, { "id". 2, "email". "[email được bảo vệ]", "đầu tiên". "Mi-ca", "cuối cùng". "Sanford", "công ty". "Stokes-Reichel", "created_at". "2014-07-03T16. 08. 17. 044Z", "quốc gia". "Cộng hòa Dân chủ Nhân dân Triều Tiên" } ]
với mở('khách hàng. json', 'w') as wr: json. kết xuất(khách hàng, wr, ensure_ascii=False, indent=2) Kết quả
Như vậy, bài viết đã trình bày các nội dung cần thiết để bạn đọc về nội dung đọc tệp ghi trong Python. Với những kiến thức căn bản này, bạn hoàn toàn có thể sử dụng câu trả lời yêu cầu trong công việc rồi đấy. Chúc các bạn học tập tốt Tham gia nhóm Lập Trình Không Khó nhé. https. //www. Facebook. com/groups/1023125804557712/
Nguyễn Văn Hiếu Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là cơ sở thích ghi lại các kiến thức mà tôi tích lũy được |