File I/O trong Python
File I/O khi đã học qua C hoặc C++. Python hỗ trợ việc đọc và ghi dữ liệu tới các file.
In kết quả ra màn hình trong Python
Đến đây, chắc bạn đã quá quen thuộc về cách sử dụng của lệnh print. Lệnh này được sử dụng để in kết quả trên màn hình. Hàm này chuyển đổi biểu thức mà bạn đã truyền cho nó thành dạng chuỗi và ghi kết quả trên đầu ra chuẩn Standard Output. Cú pháp của lệnh print là:
print "Hoc Python la kha don gian,", "ban co thay vay khong?"
Kết quả là:
Hoc Python la kha don gian, ban co thay vay khong?
Đọc input từ bàn phím trong Python
Python cung cấp hai hàm đã được xây dựng sẵn để nhận input từ người dùng. Hai hàm đó là:
-
Hàm input()
-
Hàm raw_input()
Hàm input() trong Python
Hàm này được sử dụng để nhận input từ người dùng. Hàm này giống hàm raw_input(), nhưng với hàm input() này thì bất cứ biểu thức nào được nhập từ người dùng thì nó ước lượng và sau đó trả về kết quả. Ví dụ:
str = input("Nhap dau vao cua ban: ");
print "Dau vao da nhan la : ", str
Code trên sẽ cho kết quả sau tùy thuộc vào input bạn đã nhập:
Nhap dau vao cua ban: [x*5 for x in range(2,10,2)] Dau vao da nhan la : [10, 20, 30, 40]
Hàm raw_input() trong Python
Hàm raw_input() được sử dụng để nhận đầu vào từ người dùng. Nó nhận đầu vào từ Standard Input dưới dạng một chuỗi và đọc dữ liệu từ từng dòng một. Ví dụ:
str = raw_input("Nhap dau vao cua ban: ");
print "Dau vao da nhan la : ", str
Kết quả khi mình nhập "Hello Python!" là:
Nhap dau vao cua ban: Hello Python Dau vao da nhan la : Hello Python
Ghi chú: Hàm raw_input() trả về một chuỗi. Vì thế trong trường hợp một biểu thức cần được ước lượng, thì nó phải ép kiểu sang kiểu dữ liệu sau của nó. Bạn theo dõi một số ví dụ dưới đây.
Ví dụ 1:
prn=int(raw_input("Trang VietJack"))
r=int(raw_input("Thu Tu"))
t=int(raw_input("Vi Tri"))
si=(prn*r*t)/100
print "VietJack Chao Ban ",si
Kết quả là:
>>> Trang VietJack1000 Thu Tu10 Vi Tri2 VietJack Chao Ban 200 >>>
Ví dụ 2:
name=raw_input("Nhap ten ban ")
math=float(raw_input("Nhap diem mon Toan"))
physics=float(raw_input("Nhap diem mon Vat Ly"))
chemistry=float(raw_input("Nhap diem mon Hoa Hoc"))
rollno=int(raw_input("Nhap mssv"))
print "Welcome ",name
print "MSSV cua ban la ",rollno
print "Diem mon Toan la ",math
print "Diem mon Vat Ly la ",physics
print "Diem mon Hoa Hoc la ",chemistry
print "Diem trung binh la ",(math+physics+chemistry)/3
Kết quả là:
>>> Nhap ten ban Hoang Nhap diem mon Toan7.68 Nhap diem mon Vat Ly7.14 Nhap diem mon Hoa Hoc8.84 Nhap mssv0987645672 Welcome Hoang MSSV cua ban la 987645672 Diem mon Toan la 7.68 Diem mon Vat Ly la 7.14 Diem mon Hoa Hoc la 8.84 Diem trung binh la 7.8866666667 >>>
Làm việc với File trong Python
Python cung cấp nhiều cách tiện lợi để bạn làm việc với file. Ở trên, bạn đã đọc dữ liệu từ Standard Input và ghi dữ liệu tới Standard Output. Bây giờ chúng ta tìm hiểu cách sử dụng các file dữ liệu thực sự. Một file là một nơi lưu trữ ngoại vi trên hard disk, tại đó dữ liệu có thể được lưu trữ và thu nhận. Dưới đây là các hoạt động trên File:
Mở file trong Python
Trước khi làm việc với bất cứ File nào, bạn phải mở File đó. Để mở một File, Python cung cấp hàm open(). Nó trả về một đối tượng File mà được sử dụng với các hàm khác. Với File đã mở, bạn có thể thực hiện các hoạt động đọc, ghi, … trên File đó. Cú pháp của hàm open() là:
doi_tuong_file = open(ten_file [, access_mode][, buffer])
Ở đây,
-
ten_file là tên File bạn muốn truy cập.
-
access_mode xác định chế độ của File đã được mở. Có nhiều mode sẽ được trình bày trong phần dưới. Bạn nên xác định mode này phụ thuộc vào các hoạt động mà bạn muốn thực hiện trên File đó. Chế độ truy cập mặc định là read.
-
buffer Nếu buffer được thiết lập là 0, nghĩa là sẽ không có trình đệm nào diễn ra. Nếu xác định là 1, thì trình đệm dòng được thực hiện trong khi truy cập một File. Nếu là số nguyên lớn hơn 1, thì hoạt động đệm được thực hiện với kích cỡ bộ đệm đã cho. Nếu là số âm, thì kích cỡ bộ đệm sẽ là mặc định (hành vi mặc định).
Đóng một File trong Python
Khi bạn đã thực hiện xong các hoạt động trên File thì cuối cùng bạn cần đóng File đó. Python tự động đóng một File khi đối tượng tham chiếu của một File đã được tái gán cho một file khác. Tuy nhiên, sử dụng phương thức close() để đóng một file là một sự thực hành tốt cho bạn. Phương thức close() có cú pháp như sau:
fileObject.close();
Đọc một File trong Python
Để đọc một File, bạn sử dụng phương thức read() trong Python. Cú pháp là:
doi_tuong_file.read(giatri);
Ở đây, value là số byte để được đọc từ file đã mở. Phương thức này bắt đầu đọc từ phần đầu file và nếu bạn không cung cấp tham số value thì phương thức này cố gắng đọc nhiều dữ liệu nhất có thể, có thể tới cuối File.
Ghi tới một File trong Python
Phương thức write() được sử dụng để ghi bất kỳ chuỗi nào tới một File đã mở. Bạn chú ý là phương thức write này không thêm một ký tự newline (dòng mới) ('\n') vào cuối chuỗi. Cú pháp của write() là:
doi_tuong_file.write(string);
Dưới đây là chương trình ví dụ để đọc và ghi dữ liệu từ một File trong Python:
obj=open("abcd.txt","w") obj.write("Python xin chao cac ban") obj.close() obj1=open("abcd.txt","r") s=obj1.read() print s obj1.close() obj2=open("abcd.txt","r") s1=obj2.read(20) print s1 obj2.close()Kết quả là:
>> Python xin chao cac ban Chao mung ban den voi the gioi Python >>>
Các thuộc tính của File trong Python
Đối tượng File có các thuộc tính sau:
Thuộc tính Miêu tả file.closed Trả về true nếu file đã được đóng, nếu không là false file.mode Trả về chế độ truy cập nào mà file đã mở với file.name Trả về tên file file.softspace Trả về false nếu space được yêu cầu tường minh với print, nếu không là true