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ôtlist. 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 mathModule "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) 4hà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