Python dainganxanh
  • Lời nói đầu
  • Chương I. SƠ LƯỢC
    • Bài 1. Cài đặt môi trường
    • Bài 2. Từ khóa và định danh
    • Bài 3. Câu lệnh, khối lệnh và chú thích
    • Bài 4. Nhập, xuất dữ liệu
    • Bài 5. Toán tử và lệnh gán
    • Bài 6. Biến, Hằng
    • Bài 7. Kiểu dữ liệu
    • Bài 8. Thao tác với tệp (cơ bản)
    • Bài 9. Tổng quan về Python
    • Bài tập chương 1
  • Chương II. RẼ NHÁNH - LẶP
    • Bài 10. Cấu trúc rẽ nhánh if…else
    • Bài 11. Cấu trúc lặp với for
    • Bài 12. Cấu trúc lặp với while
    • Bài 13. Lệnh break và continue
    • Bài tập chương 2
  • Chương III. HÀM & MODULE
    • Bài 14. Hàm
    • Bài 15. Tham số hàm
    • Bài 16. Đệ quy
    • Bài 17. Hàm ẩn danh
    • Bài 18. Biến toàn cục và cục bộ
    • Bài 19. Module
    • Bài 20. Package
  • Chương IV. KIỂU DỮ LIỆU
    • Bài 21. Dữ liệu kiểu số
    • Bài 22. Dữ liệu kiểu string
    • Bài 23. Dữ liệu kiểu list
    • Bài 24. Dữ liệu kiểu tuple
    • Bài 25. Dữ liệu kiểu set
    • Bài 26. Dữ liệu kiểu dictionary
  • Chương V. TỆP & THƯ MỤC
    • Bài 27. Đọc và ghi file
    • Bài 28. Quản lý file và folder
  • Chương VI. LỖI & NGOẠI LỆ
    • Bài 29. Ngoại lệ
    • Bài 30. Xử lý ngoại lệ
    • Bài 31. Xây dựng ngoại lệ
  • Chương VII. HƯỚNG ĐỐI TƯỢNG
    • Bài 32. Lập trình hướng đối tượng
    • Bài 33. Đối tượng và Lớp
    • Bài 34. Kế thừa
    • Bài 35. Đa kế thừa
    • Bài 36. Nạp chồng toán tử
  • Chương VIII. NGÀY - GIỜ
    • Python datetime
    • Python strftime()
    • Python strptime()
    • Current date and time
    • Get Current time
    • Timestamp to datetime
    • Python time Module
    • Python sleep()
  • Chương IX. CHỦ ĐỀ NÂNG CAO
    • Python Iterators
    • Python Generators
    • Python Closures
    • Python Decorators
    • Python @property decorator
    • Python RegEx
    • Python Examples
  • PHỤ LỤC - GHI CHÉP
    • Hàm map()
    • Cài Sublime Text để code Python
    • Ghi chép - ghi chú
    • Mảng 2 chiều
    • Công thức với dãy số
  • Tài liệu tham khảo
  • www.dainganxanh.com
  • 🐍Khóa học Python
  • 🤷‍♀️Hỏi đáp, chia sẻ (FG)
  • 🎮Sinh Test chấm Themis
Powered by GitBook
On this page
  • 1. Đọc file
  • 2. Mở file để ghi

Was this helpful?

  1. Chương I. SƠ LƯỢC

Bài 8. Thao tác với tệp (cơ bản)

Để thao tác với tệp (đọc hoặc ghi dữ liệu) trong Python có nhiều cách khác nhau. Trong đó sử dụng câu lện with là đơn giản và hiệu quả, ngắn gọn và an toàn. Cú pháp như sau:

with open("tenfile.txt","mode") as tenbien:
   # Thực hiện các thao tác với file

Với câu lệnh trên file được mở để thao tác đồng thời sẽ tự động đóng file sau khi thao tác.

Các chế độ mở file (mode) thường dùng như sau:

Mode

Tác động

r

Mở chỉ để đọc. (mặc định)

w

Mở để ghi, nếu đã có nội dung thì sẽ ghi đè.

Nếu file chưa tồn tại thì tạo file mới.

x

Tạo file độc quyền mới (exclusive creation) và ghi nội dung, nếu file đã tồn tại thì chương trình sẽ báo lỗi.

a

Mở file chế độ ghi tiếp.

Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới.

t

Mở file ở chế độ văn bản (mặc định)

b

Mở file ở chế độ nhị phân

1. Đọc file

Ví dụ, Ta có file ‘vao.txt’ được lưu cùng thư mục với file Python.

Mở file để đọc ta dùng phương thức with open(‘tenfile’, ‘mode’) as tenbien. Ta có thể gán mode hoặc bỏ qua vì Python mặc định mở file là để đọc.

Đọc toàn bộ file

with open("vao.txt") as f:
   print(f.read())

Đọc từng dòng (1 dòng)

with open("vao.txt") as f:
    print(f.readline())

Đọc từng dòng (2 dòng)

with open("vao.txt") as f:
    print(f.readline())
    print(f.readline())

Đọc từng dòng đến hết file

with open("vao.txt") as f:
    for i in f:
        print(i, end='')

Lưu ý: Tất cả dữ liệu đọc từ file text đều có kiểu string. Vì vậy nếu là các chữ số, khi đọc vào phải ép kiểu thành number mới có thể thực hiện các phép toán số học.

Chúng ta có thể thay đổi vị trí con trỏ tệp hiện tại bằng cách sử dụng phương thức seek (). Tương tự, phương thức tell () trả về vị trí hiện tại của con trỏ tệp (theo số byte).

Ví dụ:

with open('input.txt') as f:
    print(f.read())
    print(f.tell())    
    f.seek(0)
    doc = f.read(5)
    print(doc)
    print(f.tell())
    f.seek(13)
    print(f.read())

Giải thích: Câu lệnh 1 để mở file đọc Câu lệnh 2 đọc toàn bộ file và in ra màn hình Câu lệnh 3: in ra màn hình thông báo vị trí con trỏ hiện thời (là vị trí cuối file) Câu lệnh 4: chuyển con trỏ về vị trí 0 (đầu file) Câu lệnh 5: đọc 5 ký tự (5 bytes) và gán vào biến doc Câu lệnh 6: in biến doc ra màn hình Câu lệnh 7: in ra màn hình thông báo vị trí con trỏ hiện thời Câu lệnh 8: Chuyển con trỏ đến vị trí 13 Câu lệnh 9: đọc đến cuối file và in ra màn hình

Output:

Learn Python together 21 Learn 5 together

2. Mở file để ghi

Mở file để ghi ta dùng phương thức with open(‘tenfile’, ‘mode’) as tenbien. Mode thường dùng là w (ghi đè) hoặc a (ghi tiếp).

Cả mode a và w đều sẽ tạo file mới để ghi nếu file mở để ghi chưa tồn tại.

Ví dụ:

with open("ra.txt",'w') as f:
    f.write("Ghi dong chu nay vao file ra.txt")

Lưu ý: Để ghi dữ liệu vào file text ta chuyển về kiểu xâu trước khi ghi (nếu dữ liệu là số).

Chương trình sau sẽ báo lỗi:

a = "Ghi dong chu nay vao file ra.txt"
b = 994
with open("ra.txt",'w') as f:
    f.write(a + '\n')
    f.write(b)

Ta sửa lỗi như sau:

a = "Ghi dong chu nay vao file ra.txt"
b = 994
with open("ra.txt",'w') as f:
    f.write(a + '\n')
    f.write(str(b))
PreviousBài 7. Kiểu dữ liệuNextBài 9. Tổng quan về Python

Last updated 4 years ago

Was this helpful?