Thầy cô kiến thức thâm sâu
Học sinh chăm chỉ bước đầu thành công.

Bài 10-Kiểu dữ liệu tệp (file)

Việc nhập dữ liệu từ bàn phím là không khả thi và mất khá nhiều thời gian. Trong một số trường hợp, chúng ta cần lưu lại kết quả của việc thực thi chương trình để xem lại. Trong những trường hợp như vậy, chúng ta sẽ đọc nội dung từ file hoặc lưu kết quả thực thi ra file.

     *Quy trình làm việc với tệp gồm 3 bước như sau:

          Bước 1: Mở tệp để đọc hay ghi.

          Bước 2: Đọc dữ liệu từ tệp hoặc Ghi dữ liệu vào tệp.

          Bước 3: Đóng tệp đã mở.

1.Mở tệp

     Cú pháp:

<Tên biến tệp> = open(“<đường dẫn đến tệp>”, “<Chế độ mở tệp>)

     Giải thích:

            <Tên biến tệp> : Đây là tên đặt cho tệp cần mở.

        <Đường dẫn đến tệp>: Đường dẫn đến tệp mình muốn mở ở trên máy tính và phải được đặt trong cặp nháy đôi. Lưu ý:

            + Nếu tệp muốn mở nằm cùng thư mục với chương trình Python đang chạy thì ta không cần để cụ thể đường dẫn, chỉ cần để tên tệp là được. VD: “test.txt”

              + Nếu tệp muốn mở không nằm cùng thư mục với chương trình Python đang chạy thì phải chỉ đường dẫn cụ thể. VD: “D:/text.txt”. Lưu ý: đường dẫn phải sử dụng dấu /

         <Chế độ mở tệp>: Phần này chúng ta chỉ tìm hiểu 2 chế độ đọc và ghi.

                    + “w” : Nếu muốn mở tệp để ghi.

                    + “r” : Nếu muốn mở tệp để đọc.

     Ví dụ:   

            File1 = open(“test.txt”, “w”)                      # Mở tệp để ghi

            File2 = open(“test.txt”, “r”)                       # Mở tệp để đọc

            File3 = open(“D:/test.txt”, “w”)                 # Mở tệp để ghi

2.Ghi dữ liệu vào tệp:

     Để có thể ghi dữ liệu vào tệp, đầu tiên chúng ta cần phải mở nó lên ở chế độ “w”, dữ liệu ghi vào tệp bắt buộc phải là kiểu chuỗi (str).

     Cú pháp:

<Tên biến tệp>.write(“Nội dung cần ghi”)

    Ví dụ:         Để ghi chữ “Xin chao” vào tệp ta thực hiện

File1.write(“Xin chao”)

     *Một số lưu ý khi ghi dữ liệu vào tệp.

          -Khi giá trị muốn ghi vào tệp không phải kiểu xâu (số nguyên, số thực,…), để ghi được thì ta cần chuyển giá trị đó về kiểu xâu bằng cách ép kiểu. Cú pháp ép kiểu:

str(giá trị)

     Ví dụ 1: Cho biến a = 10, muốn ghi giá trị biến a vào tệp ta phải chuyển biến a về kiểu xâu bằng ép kiểu. Cách thực hiện:

File2.write(str(a))

          -Khi muốn ghi dữ liệu vào tệp nhưng dữ liệu phải nằm trên nhiều dòng. Ta có cách thực hiện như sau: thêm ký tự “\n” vào cuối câu lệnh ghi. Khi đó dữ liệu ghi sẽ nằm trên nhiều dòng trong tệp.

     Ví dụ 2: Nếu muốn ghi dữ liệu file như hình bên dưới: 

Ta thực hiện:

File1.write(“Python\n”)            hoặc            File1.write(“Python” + “\n”)

          File1.write(“Pascal\n”)             hoặc            File1.write(“Pascal” + “\n”)

          File1.write(“Java”)

     Lưu ý: Nếu tệp muốn mở để ghi dữ liệu nó chưa được tạo thì chương trình sẽ tự động tạo một tệp với tên chúng ta đã đặt và tệp này được lưu cùng thư mục với chương trình Python đang chạy. Còn nếu tệp đó đã được tạo thì nó sẽ xoá nội dung cũ đi và ghi nội dung mới vào tệp.

3.Đọc dữ liệu từ tệp     

     Để có thể đọc được dữ liệu từ tệp thì bắt buộc người lập trình phải biết cấu trúc lưu trữ của tệp đó. Chẳng hạn như: đọc dãy số từ tệp thì chúng ta phải biết dãy số đó từng phần tử lưu trên cùng 1 dòng hay mỗi phần tử là 1 một dòng,… Vì vậy, ở nội dung này chúng ta chỉ trình bày việc đọc dữ liệu từ tệp ở các trường hợp cơ bản.

     Tương tự, để đọc dữ liệu từ tệp, đầu tiên chúng ta phải thực hiện mở tệp ở chế độ đọc “r” và chúng ta cần ghi nhớ dữ liệu đọc từ tệp ra luôn có kiểu chuỗi (str).

     Cú pháp:

          <Tên biến> = <Tên biến tệp>.read(n)

          <Tên biến> = <Tên biến tệp>.readline()

     Giải thích:

       - read(n): Đọc từ tệp n kí tự bắt đầu vị trí hiện tại, vị trí mới tăng thêm n kí tự.

       - readline(): Đọc từ vị trí hiện tại đến cuối dòng, vị trí mới nằm ở đầu dòng tiếp theo.

     Ví dụ 1: Cho tệp test.txt có giá trị như hình bên dưới:

        a = File1.read(4)  # Đọc 4 ký tự bắt đầu từ vị trí đầu tiên. Kết quả là: “thpt”, lưu ý vị trí mới của con trỏ văn bản lúc này nằm ở kí tự sau kí tự “t”, tức là khoảng trắng.

        b = File1.read(5)      # Đọc 5 kí tự bắt đầu từ khoảng trắng. Kết quả là: “ quoc”

        c = File1.readline()   # Đọc từ vị trí hiện tại đến cuối dòng. Kết quả la: “ thai”

     Ví dụ 2: Cho tệp test.txt có giá trị như hình bên dưới:

     a = File1.readline()   # Đọc từ đầu dòng đến cuối dòng, Kết quả là: “Lap trinh Python”. Vị trí mới của con trỏ là đầu dòng tiếp theo.

        b = File1.read(3)      # Kết quả là: “Mon”

4.Đóng tệp

     Để hoàn thành việc đọc hoặc ghi dữ liệu vào tệp thì bắt buộc các bạn cần thực hiện lệnh đóng tệp.

     Cú pháp:

<Tên biến tệp>.close()

     Ví dụ:              File1.close()

5.Ví dụ áp dụng

     Ví dụ 1: Cho 2 biến a = 10, b = 15. Viết chương trình ghi vào tệp có tên là “tong.txt” được lưu ở ổ đĩa D trên máy tính các nội dung sau: Giá trị biến a, giá trị biến b, Giá trị tổng của 2 biến. Mỗi giá trị ghi trên một dòng.

    Khi chạy chương trình:

    Ví dụ 2: Viết chương trình đọc dữ liệu từ tệp có tên là “chao1.txt” được lưu trữ trong ổ đĩa D của máy tính và in các giá trị đó ra màn hình. Giá trị của tệp như hình bên dưới:

    Chương trình:

    Khi chạy chương trình:

KẾT LUẬN

     Kiểu dữ liệu tệp hơi trừu tượng, chúng ta cần phải thuộc các cú pháp để thực hiện cho đúng yêu cầu.

Bài đăng phổ biến

Bài đăng nổi bật

Thực hành tin học 10-Sách Kết nối tri thức, Bài thực hành số 16-Vẽ miếng dưa hấu có văn bản

Yêu cầu: Vẽ miếng dưa hấu như hình 14.7. Đây là phần luyện tập câu 3, sgk tin học 10 trang 81 (sách Kết nối tri thức).

Học Online!

-Học sinh nộp bài
-Học sinh xem điểm
-Video bài giảng lý thuyết
-Học sinh làm việc theo nhóm
-Ôn bài vui nhộn tin học 10 - kntt
-Học sinh làm bài trắc nghiệm Online
-Video hướng dẫn làm bài tập thực hành

Tin học 10-kntt

-Kiểm tra tin học 10 - kntt
-Lý thuyết tin học 10 - kntt
-Thực hành tin học 10 - kntt
-Trắc nghiệm tin học 10 - kntt
-Ôn bài vui nhộn tin học 10 - kntt
-Gợi ý trả lời sgk tin học 10 - kntt
-Bài giảng điện tử tin học 10 - kntt

Tin học 11, 12, TN-12

-Tốt nghiệp THPT
-Lý thuyết Python cơ bản
-Lý thuyết tin học 12
-Thực hành Python cơ bản
-Thực hành tin học 12
-Trắc nghiệm Python cơ bản
-Trắc nghiệm tin học 12

Tổng số lượt xem

Chăm chỉ chiến thắng tài năng
khi tài năng không chịu chăm chỉ.

- Tim Notke -

Bản quyền
Liên hệ
Chat Zalo
Chat Facebook