Thứ Ba, 10 tháng 12, 2013

Chương 10 : Tóm tắt một lượt thư viện tiêu chuẩn

http://docs.python.org/2/tutorial/stdlib.html

10.1 Giao diện hệ thống hiện hành

Module Os cung cấp hàng tá các module cho quá trình tương tác với hệ thống hiện hành:
 
>>> import os
>>> os.getcwd()      # Return the current working directory
'C:\\Python26'
>>> os.chdir('/server/accesslogs')   # Change current working directory
>>> os.system('mkdir today')   # Run the command mkdir in the system shell
0


Hãy chắc chắn dùng '' import os " thay cho kiểu :"from os import * ", điều này sẽ giữ cho Os.open() được ánh xạ từ built-in open() function ,thứ mà hiện hành theo nhiều cách khác nhau
 Các built- in dir() và help() function là các hàm bỗ trợ quá trình tương tác cho working với các module lớn như "os":

>>> import os
>>> dir(os)
<returns a list of all module functions>
>>> help(os)
<returns an extensive manual page created from the module's docstrings>


Hỗ trợ cho các daily file và các nhiệm vụ quản lý directory, module 'Shutil" cung cấp một giao diện cấp cao hơn dễ dàng sử dụng hơn:

>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
>>> shutil.move('/build/executables', 'installdir')

10.2 File wildcard

Module Glob cung cấp một function để tao lên một list các file được file wildcard tìm thấy theo yêu cầu

>>> import glob
>>>Glob.glob('*.py*')
[thanh.py, conbo.py]

10.3 Các đối số dòng lệnh<command line arguments>

Các script có ích nói chung thường được tiến hành nhờ các đối số dòng lệnh. Các đối số này được lưu trữ ở trong "argv" của module sys có thuộc tính như môt
list. ví dụ dưới đây là kết quả đầu ra của quá trình chạy " python demo.py one two three" với dòng lệnh:
 >>>import sys
>>>print sys.argv
['demo.py', 'one',' two', 'three']

Module "getopt()" tiến hành sys.argv sử dụng quy ước của UNIX getopt() function
Quá trình sử lý các dòng lệnh mạnh mẽ và tiện lợi hơn nhờ được cung cấp bởi "argparse" module

10.4 Lỗi lệch hướng đầu ra và sự kết thúc chương trình

 Module "sys" có thuộc tính stdin, stdout, và stderr. sau này huux ích cho hành động cảnh báo trước và tin nhắn lỗi báo cho chúng thấy khi stdout bị đổi hướng

>>>sys.stderr.write('wanring, log file not found starting a new one\n')
wanring, log file not found starting a new one

Cách thường sử dụng để kết thúc một script: sys.exit()

10.5 Đối sánh mẫu string ( pattern watching)


<Việc đối sánh mẫu diễn ra với nhiều lần thử trên các đoạn khác nhau của văn bản. Trong đó cửa sổ là một chuỗi M ký tự liên tiếp trên văn bản. Mỗi lần thử chương trình sẽ kiểm tra sự giống nhau giữa mẫu với cửa sổ hiện thời. Tùy theo kết quả kiểm tra cửa sổ sẽ được dịch đi sang phải trên văn bản cho lần thử tiếp theo>
huhj
 Module "re" cung cấp những công cụ biểu thức tiện dụng giúp sử lý các string thuận lợi. Khi đối sánh phức tạp và thao tác, các biểu thức này đưa ra những cách giải quyêt ngắn gọn và tối ưu
     
 còn nữa

10.6 Toán học

Module "math" được đưa ra để truy cập vào thư viện để floating point math
Module "random" cung cấp công cụ đê tạo ra một sự lựa chọn ngẫu nhiên:

>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(xrange(100), 10)   # sampling without replacement
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random()    # random float
0.17970987693706186
>>> random.randrange(6)    # random integer chosen from range(6)
4
hàm này để đánh lô đề ngon :3

10.7 truy cập internet

Có một số module để truy cập và xử lý protocol internet <Trong lập trình máy tính, đây là một câu lệnh của chương trình đã được thông dịch hoặc biên dịch thành ngôn ngữ máy là loại ngôn ngữ, mà máy tính có thể hiểu và thực hiện. >
có hai cách đơn giản nhất là "urllib2" cho việc retrieving data từ  URLs và "smtplib" cho sending mail

>>> import urllib2
>>> for line in urllib2.urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
...     if 'EST' in line or 'EDT' in line:  # look for Eastern Time
...         print line

<BR>Nov. 25, 09:43:32 PM EST

>>> import smtplib
>>> server = smtplib.SMTP('localhost')
>>> server.sendmail('soothsayer@example.org', 'jcaesar@example.org',
... """To: jcaesar@example.org
... From: soothsayer@example.org
...
... Beware the Ides of March.
... """)
>>> server.quit()
 chú ý rằng ví dụ 2 cần một mailsever đang chạy trên localhost

10.8 Date và time

Module "datetime" cung cấp các class hỗ trợ cho việc sử lý date và time bằng cả hai cách đơn giản và phức tạp. Các cách tính toán date và time đêù được hỗ trợ.
Nguyên tắc của các thao tác là tách các bộ phân một cách hiệu quả cho định dạng đầu ra và sử lý chúng.
Module hỗ trợ các object có cùng chung múi giờ.
>>> # dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # dates support calendar arithmetic
>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368 

10.9 Quá trình nén data

sự lưu trữ data và các định dạng quá trình nén đều được hỗ trợ bởi các module bao gồm: zlip, gzip, bz2, zipfile và tarfile

>>> import zlib
>>> s = 'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979






Không có nhận xét nào:

Đăng nhận xét