Page 58 - Python Simple
P. 58

7. Vào và ra                                                     http://www.vithon.org/tutorial/2.5/node9.html



                  >>> print 'Jack: %(Jack)d; Sjoerd: %(Sjoerd)d; Dcab: %(Dcab)d' % table
                  Jack: 4098; Sjoerd: 4127; Dcab: 8637678


             Cách này đặc biệt hữu dụng khi đi kèm với hàm có sẵn vars() mới, nó trả về
             một từ điển chứa tất cả các biến cục bộ.


             7.2 Đọc và viết tập tin


             open() trả về một đối tượng tập tin, và thường được dùng với hai thông số:
             "open(filename, mode)".

                  >>> f=open('/tmp/workfile', 'w')
                  >>> print f
                  <open file '/tmp/workfile', mode 'w' at 80a0960>

             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.


             7.2.1 Phương thức của đối tượng tập tin


             Các ví dụ trong mục này sẽ giả sử một đối tượng tập tin f đã được tạo.

             Để đọc nội dung tập tin, gọi f.read(size), 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 ("").

                  >>> f.read()
                  'This is the entire file.\n'
                  >>> f.read()
                  ''

             f.readline() đọc một dòng từ tập tin; 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ì



     4 of 7                                                                                   08/31/2011 10:26 AM
   53   54   55   56   57   58   59   60   61   62   63