Page 88 - Python Simple
P. 88

11. Giới thiệu sơ về bộ thư viện chuẩn - Phần II                http://www.vithon.org/tutorial/2.5/node13.html



                     >>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')
                     'English_United States.1252'
                     >>> conv = locale.localeconv()          # get a mapping of conventions
                     >>> x = 1234567.8
                     >>> locale.format("%d", x, grouping=True)
                     '1,234,567'
                     >>> locale.format("%s%.*f", (conv['currency_symbol'],
                     ...       conv['frac_digits'], x), grouping=True)
                     '$1,234,567.80'


             11.2 Tạo mẫu


             string (mô-đun) cung cấp một lớp Template với một cú pháp đơn giản, có thể dễ dàng
             thay đổi bởi người dùng. Điều này cho phép người dùng có thể tùy biến trình ứng dụng
             mà không phải thay đổi nó.

             Định dạng này sử dụng các tên biến giữ chỗ bắt đầu với "$" sau đó là một tên biến hợp lệ
             của Python (chữ cái, chữ số và dấu gạch dưới). Tên giữ chỗ được đặt trong ngoặc, điều
             này khiến nó có thể được nối tiếp bởi các ký tự khác mà không cần có khoảng trống ở
             giữa. Viết "$$" sẽ tạo ra một ký tự thoát đơn "$":
                 >>> from string import Template
                 >>> t = Template('${village}folk send $$10 to $cause.')
                 >>> t.substitute(village='Nottingham', cause='the ditch fund')
                 'Nottinghamfolk send $10 to the ditch fund.'

             substitute (phương thức) nâng KeyError nếu biến giữ chỗ không được cung cấp bởi
             một từ điển hay một tham số nhập từ bàn phím. Đối với các trình ứng dụng kiểu nhập
             liệu vào thư điện tử, dữ liệu nhập bởi người dùng có thể có thiếu sót, khi đó phương thức
             safe_substitute sẽ thích hợp hơn -- nó giữ nguyên các biến giữ chỗ nếu dữ liệu bị thiếu:

                 >>> t = Template('Return the $item to $owner.')
                 >>> d = dict(item='unladen swallow')
                 >>> t.substitute(d)
                 Traceback (most recent call last):
                   . . .
                 KeyError: 'owner'
                 >>> t.safe_substitute(d)
                 'Return the unladen swallow to $owner.'

             Các lớp con của Template có thể định nghĩa một phần tử phân chia tùy biến. Ví dụ một
             ứng dụng đổi tên ảnh hàng loạt của một trình duyệt ảnh có thể sử dụng dấu phần trăm
             để làm các biến giữ chỗ ngày tháng, số thứ tự ảnh, hay định dạng ảnh:

                 >>> import time, os.path
                 >>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']
                 >>> class BatchRename(Template):
                 ...     delimiter = '%'
                 >>> fmt = raw_input('Enter rename style (%d-date %n-seqnum %f-format):  ')
                 Enter rename style (%d-date %n-seqnum %f-format):  Ashley_%n%f

                 >>> t = BatchRename(fmt)
                 >>> date = time.strftime('%d%b%y')
                 >>> for i, filename in enumerate(photofiles):
                 ...     base, ext = os.path.splitext(filename)




     2 of 7                                                                                   08/31/2011 10:30 AM
   83   84   85   86   87   88   89   90   91   92   93