[​IMG]
Chào các bạn! Các bạn đang xem loạt bài thuộc khóa học lập trình Python miễn phí do ksec.info tổ chức. Rất vui được gặp lại các bạn ở bài 6.

Hôm nay chúng ta sẽ được tìm hiều về đọc và xuất file trong Python. Việc thao tác với file sẽ được sử dụng rất nhiều trong khi làm việc sau này.
Đầu tiên: Mở file
Khi mở file chúng ta sử dụng hàm với cú pháp sau:
Code:
open(filename, mode)
Thông số thứ nhất là một chuỗi chứa tên tập tin. Thông số thứ hai là một chuỗi khác chứa một vài ký tự xác định cách thức tập tin sẽ được dùng. mode có thể là 'r' khi tập sẽ chỉ được đọc, 'w' chỉ được ghi (tập tin cùng tên đang có sẽ bị xóa), và 'a' mở tập tin để thêm vào cuối; mọi dữ liệu ghi vào tập tin sẽ được tự động thêm vào cuối. 'r+' mở tập tin để đọc và ghi. Thông số mode là không bắt buộc; 'r' sẽ được giả định nếu nó bị bỏ qua.
Trong Windows và Macintosh, 'b' thêm vào mode mở tập tin ở chế độ nhị phân, cho nên cũng có các chế độ khác như 'rb', 'wb', và 'r+b'. Windows phân biệt rõ các tập tin văn bản và nhị phân; ký tự hết dòng (end-of-line) trong các tập tin văn bản được tự động thay đổi một chút khi dữ liệu được đọc hay ghi. Việc thay đổi sau bức bình phong (behind-the-scene) như vậy không ảnh hưởng các tập tin văn bản ASCII, nhưng nó sẽ phá dữ liệu nhị phân như trong các tập tin JPEG hay hàm EXE . Cần cẩn thận dùng chế độ nhị phân khi đọc và ghi các tập tin như vậy.
Ví dụ:
Code:
f=open('/home/kma/vidu.txt', 'w')
Thứ hai: Đọc file
Để đọc file chúng ta sử dụng cú pháp sau. Giả sử chúng ta đã mở file vidu.txt như cú pháp trên:
  • Hàm sử dụng để đọc file:
    Code:
    f.read(size)
    Hàm trên đọc một số lượng dữ liệu và trả về một chuỗi. size là một thông số số nguyên không bắt buộc. Khi size bị bỏ qua hoặc âm, toàn bộ nội dung tập tin sẽ được đọc và trả về; bạn sẽ gặp vấn đề nếu tập tin lớn gấp đôi bộ nhớ của máy bạn. Ngược lại, nhiều nhất size byte sẽ được đọc và trả về. Nếu đã đến cuối tập tin, f.read() sẽ trả về một chuỗi rỗng ("").
  • Đọc 1 dòng của file:
    Code:
    f.readline()
    Ký tự dòng mới (\n) được giữ lại ở cuối chuỗi, và sẽ chỉ bị bỏ qua ở dòng cuối của tập tin nếu tập tin không kết thúc bằng một dòng mới. Điều này làm giá trị trả về rõ ràng; nếu f.readline() trả về một chuỗi rỗng có nghĩa là đã đụng cuối tập tin, trong khi một dòng trống thì được biểu diễn bởi '\n', một chuỗi chỉ chứa duy nhât một ký tự dòng mới.
  • Để di chuyển vị trí trong file:
    Code:
    f.seek(offset, from_what)
    Vị trí được tính từ tổng của offset và điểm tham chiếu; điểu tham chiếu được xác định bởi thông số from_what . Giá trịfrom_what 0 tính từ đầu tập tin, 1 dùng vị trí hiện tại, và 2 tính từ vị trí cuối tập tin. from_what có thể bị bỏ qua và mặc định là 0, điểm tham chiếu là đầu tập tin.
  • Để biết vị trí của con trỏ trong tập tin:
    Code:
    f.tell()
    Hàm trả về một số nguyên cho biết vị trí hiện tại của đối tượng tập tin, tính theo byte từ đầu tập tin.
Nào, chúng ta sẽ tạo 1 file txt với nội dung bất kì được lưu cùng vị trí với chương trình dưới. Sau đó sẽ dùng chương trình dưới để mở file và đọc nội dung nhé:
Code:
#coding: utf-8

filename = raw_input('Nhap vao ten file can doc: ')
print "Đây là nội dung file của bạn: "
f = open(filename,'r')
print f.read()
Output:
[​IMG]

- Thứ ba: Ghi file
Để ghi file, trước hết chúng ta cần mở file ra bằng cú pháp mở file. Sau đó sử dụng hàm sau để ghi vào file:
Code:
f.write(string)
Hàm viết nội dung của string vào tập tin, trả về None. Để viết một thứ khác không phải là chuỗi, nó sẽ cần được chuyển thành một chuỗi trước:

Code:
value = ('the answer', 42)
s = str(value)
f.write(s)
Cuối cùng: Đóng file
Các bạn sử dụng hàm sau để đóng file:
Code:
f.close()
Ví dụ:
Code:
print "Hom nay toi se chi cho ban cach viet vao 1 file."
f = open('ghifile.txt','w+')
f.write('Day la dong dau tien\n')
s = 'Day la dong thu hai\n'
f.write(s)
s1 = raw_input('Nhap vao dong ban muon viet: ')
f.write(s1)
print "Mo file ghifile.txt ra xem ket qua nhe"
f.close()
Output:
[​IMG]
Bài tập:
  • Viết chương trình giải phương trình ax+b = c với a,b,c nhập từ bàn phím. Kết quả thu được lưu vào file ketqua.txt
  • Viết chương trình thực hiện một bản phỏng vấn nhỏ, kết quả phỏng vấn được lưu vào file hoso.txt. Sau đó dùng lệnh đọc file để in file hoso.txt ra màn hình.
http://ksec.info/threads/bai-6-doc-va-viet-file-trong-python.49/
0 Comments
G+ Comments
Comments

0 comments:

Post a Comment

 
Top

Nhận xét mới đăng tải!

Loading…
X