|
|
 |
|
| |

คำอธิบายโมดูลต่าง ๆ ภายในภาษาไพธอน
เขียนโดย อ.จักรกฤษณ์ แสงแก้ว สาขาสารสนเทศศาสตร์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยมหาสารคาม
บทนำ
ภาษาไพธอนมีโมดูลจำนวนมากที่ถูกสร้างขึ้นเพื่อสนับสนุนให้ไพธอนสนับสนุนมาตรฐานต่าง
ๆ ที่เกิดขึ้นในปัจจุบัน ทั้งด้านเน็ตเวอร์ค การประมวลผลข้อความ XML, HTML
, FTP และอื่น ๆ อีกมากมาย ประกอบด้วยรายละเอียดดังต่อไปนี้
โมดูล rfc822
ประกอบด้วยตัวแปลสำหรับเมล์และข่าวสารที่อยู่ในมาตรฐาน RFC 822 เช่น HTTP
Header
รูปแบบพื้่นฐานของ RFC 822 ประกอบด้วยส่วนของ Header Fields และตามด้วยบรรทัดว่าง
และส่วนข้อมูลตามลำดับ
เช่น
|
Message-ID: <2000300218374534.00abc211@nprotech.com>
Date: Tue, 12 Oct 2004 12:21:03 - 0500
To: "Chakrit Saengkaew" <nprotech@yahoo.com>
From: NproTech
Subject: Re: Python Book !!
where is it?
|
โมดูล mimetools
Multipurpose Internet Mail Extensions (MIME) เป็นมาตรฐานที่กำหนดว่า
การเก็บเท็กซ์ที่เป็น Non-ASCII , รูปภาพ และข้อมูลอื่น ๆ ภายใน RFC 822
โมดูลนี้ประกอบด้วยเครื่องมือสำหรับเขียนโปรแกรมเพื่ออ่านและเขียน MIME
ประกอบด้วย เวอร์ชั่นของ RFC822, Message Class ซึ่งเป็นการเข้่ารหัส MIME
Messages
โมดูล MimeWriter
สามารถเขียนข่าวสารแบบ "Multipart" กำหนดโดย MIME Mail Standard
โมดูล mailbox
ประกอบด้วยคำสั่งสำหรับรูปแบบ mailbox ที่แตกต่างกัน (ส่วนมากยูนิกส์)
รูปแบบของ mailbox เหล่านั้นเก็บในรูปแบบ RFC 822 ไว้ในไฟล์
โมดูล mailcap
ประกอบด้วยคำสั่งสำหรับไฟล์ "mailcap" ซึ่งประกอบด้วยข่าวสารเกี่ยวกับรูปแบบเอกสารที่แตกต่างกัน
โมดูล mimetypes
ประกอบด้วยส่วนสำหรับตัดสินใจว่า MIME Type ที่ใช้สำหรับ Uniform Resource
Locator
ทำงานบน Built-in table , apache และ Netscape Configuration file
โมดูล packmail
ประกอบด้วยเครื่องมือสร้าง "Shell Archives"
โมดูล mimify
สำหรับแปลง MIME encoded Text Messages จากรูปแบบการเข้ารหัสอีกแบบเป็นตัวอักษร
โมดูล multifile
รักษาแต่ละส่วนของ Multipart MIME message เป็นไฟล์แยกเฉพาะออกไป
โมดูลด้าน : File Formats
โมดูล xmllib
สำหรับจัดการ XML Parser ใช้ Regular Expression ในการดึงข้อมูลออกมาจากเอกสาร
XML
โมดูล xml.parsers.expat
อินเตอร์เฟสระหว่าง James Clark's Expat XML Parser ทำงานได้เร็วและเยี่ยม
ข้อสังเกต ตัว parser จะคื่นค่าเป็น unicode string ถ้าท่านส่งมันเป็น
ordinary text ค่าปกติจะถูกแปลงเป็น UTF-8 ท่านต้องแน่ใจว่า XML Files ประกอบด้วยการเข้ารหัสที่สอดคล้อง
โมดูล sgmllib
ประกอบด้วย SGML parser ทำงานได้ดีคล้ายกับ xmllib parser
โมดูล htmllib
ประกอบด้วย tag-driven HTML parser ซึ่งส่งข้อมูลไปยัง Formatting Object
ท่านต้องศึกษาโมดูล formatter เพิ่มเติม
โมดูล htmlentitydefs
ประกอบด้วย dictionary ซึ่งมี ISO Latin 1 character ทั้งหมดที่ใช้ภายใน
html
เช่น amp = &, quote = '', copy = @, yen = Y
โมดูล formatter
ประกอบด้วยคลาส formatter ที่ใช้ร่วมกับ htmllib module
มีสองคลาส คือ formatters และ writers
formatters สำหรับแปลงสตรีมของแท็กและข้อมูลจาก HTML parser เป็น stream
ที่เหมาะกับ output device
writers สำหรับเรนเดอร์สตรีมลงบน output device
ส่วนมากท่านสามารถใช้คลาส AbstractFormatter ในการทำ formatting
มันจะเรียกเมธอนต่าง ๆ บนตัวอ็อบเจ็ค writer
คลาส AbstractWriter สำหรับแสดงข้อความของแต่ละ method call
โมดูล ConfigParser
อ่าน Configuration file ได้แก่ ไฟล์ *.ini ของระบบวินโดวส์
โมดูล netrc
แปลง .netrc configuration files เช่นไฟล์ที่ใช้ในการเก็บ FTP username
และ passwords ภายในไดเร็คทอรี่ของยู้ใช้ (อย่าลืมว่าการตั้ง configure เพื่อว่าไฟล์ดังกาวสามารถอ่านได้โดยผู้ใช้
"chmod 0600~/.netrc"
โมดูล shlex
ประกอบด้วย simple lexer (รู้จักกันในนาม Tokenizer) สำหรับภาษาต่าง ๆ
ที่อยู่บนพื้นฐานของ Unix Shell Syntax
โมดูล zipfile
อนุญาตให้อ่านและเขียนไฟล์ .zip (การบีบอัดไฟล์)
โมดูล gzip
สำหรับให้อ่านและเขียนไฟล์บีบอัดในมาตรฐาน gzip
โมดูลด้าน : Internationalization
โมดูล local
โมดูลในกลุ่มนี้อินเตอร์เฟสกับภาษาซี และแปลงจำนวน และสตริงไปยัง local
numeric โดยไม่ส่งผลกระทบอย่างอื่น
โมดูล unicodedata
ประกอบด้วยคุณสมบัติของอักขระ Unicode เช่น categories, decomposition
data และ numerical values
โมดูล ucnhash
แม็พ character code กับ Unicode string literals
เช่นใช้ \N{} เพื่อแม็พกับ unicode character names กับโค๊ด
โมดูลด้าน : Multimedia
โมดูล imghdr
เพื่อบอกถึงฟอร์แมตของไฟล์รูปภาพแบบต่าง ๆ
โมดูล sndhdr
เพื่ออธิบายชนิดของไฟล์เสียง
โมดูล whatsound
เหมือนกับโมดูล sndhdr
โมดูล aifc
อ่านและเขียนไฟล์ AIFF และ AIFC ของเครื่องแม็คอินท็อช
โมดูล sunau
อ่านและเขียนไฟล์ AU ของเครื่อง Sun
โมดูล sunaudio
สำหรับบอกรายละเอียดเกี่ยวกับไฟล์ AU ของเครื่อง SUN
โมดูล wave
สำหรับอ่านและเขียนไฟล์ .WAV ของไมโครซอฟต์
โมดูล audiodev
ใช้กับยูนิกส์เท่านั้น เพื่อเล่นเพลงที่สนับสนุน SUN และ SGI
โมดูล winsound
ใช้กับวินโดวส์เท่านั้น เพื่อเล่นเพลงของ MS Windows machine
โมดูล colorsys
สำหรับแปลงสีระหว่าง RGB, YIQ(video) , HLS และ HSV
โมดูลด้าน : Data Storage
โมดูล anydbm
อินเตอร์เฟสระหว่าง Simple Database Driver
โมดูล whichdb
อินเตอร์เฟสกับ which database handler ที่ใช้สำหรับ database file
โมดูล shelve
สำหรับ database handlers เพื่อใช้สำหรับ persistent dictionaryes.
ใช้คีย์เป็นสตริง แต่ค่าสามารถแปลงไปในรูปแบบใด ๆ ก็ได้ โดยใช้ร่วมกับโมดูล
pickle
โมดูล dbhash
สนับสนุน dbm อินเตอร์เฟสกับ bsddb database handler
โมดูล dbm
อินเตอร์เฟสกับ dbm database handlers (ใช้กับยูนิกส์เท่านั้น)
โมดูล dumbdbm
สำหรับ simple database implementation คล้ายกับ dbm แต่เขียนใน python
แท้ ๆ
ใช้สองไฟล์คือ binaryfile (.dat) และข้อมูล (.dir)
โมดูล gdbm
ประกอบด้วยการอินเตอร์เฟสกับ GNU dbm database handler
โมดูลด้าน : Tools และ Utilities
โมดูล dis
สำหรับ Python Disassembler
โมดูล bdb
สำหรับการทำ Debugger ท่านสามารถใช้มันสร้าง debuggers ส่วนตัวของท่านได้
คลาส Bdb จะ overide method ชื่อ user ซึ่งถูกเรียกเมื่อมีการหยุด debugger
ถ้าต้องการควบคุม debugger สามารถใช้เมธอด set ได้
โมดูล profile
คล้ายการทำ disassembler และ debugger โดยสามารถรันได้จาก command line
โมดูล pstats
สำหรับวิเคราะห์ข้อมูลที่รวบรวมโดย python profiler
โมดูล tabnanny
ตรวจสอบซอร์สไฟล์ไพธอน ถ้าไฟล์รวมกับแท็บและสเปส ตรวจขนาดของขนาดแท็บและสเปสบาร์
โมดูลด้าน : Platform Specific
โมดูล fcntl
ใช้กับ Unix เท่านั้น สำหรับติดต่อกับ ioctl() และ fcntl() บนยูนิกส์
สำหรับโอเปอร์เรชั่นของไฟล์แฮนเดอร์และ I/O Device handles
อ่านแอตทริบิวส์พิเศษ
ควบคุมการบล็อก
แก้ไขเทอร์มินอล
โมดูล pwd
(ยูนิกส์เท่านั้น) อินเตอร์เฟสกับ Unix password database (/etc/passwd)
โมดูล grp
(ยูนิกส์เท่านั้น) อินเตอร์เฟสกับ Unix Group database (/etc/group)
โมดูล nis
(ยูนิกส์เท่านั้น) อินเตอร์เฟส NIS(yellow pages) service อ่านค่าจาก
Central NIS database
โมดูล curses
(ยูนิกส์เท่านั้น) ควบคุม Text Terminal Window
โมดูล termios
(ยูนิกส์เท่านั้น) อินเตอร์เฟสกับ Unix Terminal Control มันสามารถใช้ควบคุมอุปกรณ์พอร์ทการสื่อสารต่าง
ๆ ได้
โมดูล tty
(ยูนิกส์เท่านั้น) จัดการกับ tty devices
โมดูล resource
(ยูนิกส์เท่านั้น) ใช้ Query หรือ Modify the System resource limits
โมดูล syslog
(ยูนิกส์เท่านั้น) ส่งข่าวสารไปยัง system logger facility (syslogd)
ว่ามีอะไรเกิดขึ้นปกติอยู่ที่ /var/log/messages, /var/adm/syslog
โมดูล msvcrt
(วินโดวส์เท่านั้น) เข้าถึงฟังก์ชั่นของ Visual C/C++ รันไทม์ของ (MSVCRT)
โมดูล nt
(วินโดวส์เท่านั้น) ใช้โดยโมดูล os บนระบบปฏิบัติการวินโดวส์ เป็นการยากที่จะใช้โมดูลนี้โดยตรง
ควรใช้โมดูล os แทน
โมดูล _winreg
อินเตอร์เฟสกับ Windows Registry Database
โมดูล posix
สำหรับ Unix/POSIX เท่านั้น ใช้โดยโมดูล os ของ UNIx และ POSIX โดยส่วนใหญ่เข้าถึงโดยโมดูล
os โมดูลนี้จะมีประโยชน์ต่อผู้ที่มีความเชี่ยวชาญ POSIX
โมดูลด้าน : Implementation
Support
โมดูล dospath
ใช้กับ os.path สำหรับดอส ใช้เมื่อต้องการควบคุม DOS Path บนระบบปฏิับัติการอื่น
โมดูล macpath
ใช้กับ os.path ของ macintosh เพื่อควบคุมมันบนระบบปฏิบัติการอื่น
โมดูล ntpath
ใช้กับ os.path ของ NT เพื่อควบคุมมันบนระบบปฏิบัติการอื่น
โมดูล posixpath
ใช้กับ os.path ของ POSIX เพื่อควบคุมมันบนระบบปฏิบัติการอื่น
โมดูล strop
เป็น low-level ที่จัดเตรียมโดย C โมดูลนี้จะถูกโหลดอัตโนมัติเมื่อมีการโหลดโมดูล
string
โมดูล imp
ประกอบด้วยฟังก์ชั่นต่าง ๆ สำหรับใช้อิมพลิเมนต์การ import
โมดูล new
เป็น low-level ที่อนุญาตให้ท่านสร้าง internal object เช่น class objects,
function objects และ python runtime system
โมดูล pre
เป็น low-level ที่ใช้สำหรับโมดูล re ท่านไม่ต้องใช้มันโดยตรง
โมดูล sre
เป็น low-level สำหรับโมดูล re ท่านไม่ต้องใช้มันโดยตรง
โมดูล py_compile
อนุญาตให้ท่านคอมไพล์โค๊ดไพธอนเป็นไบต์โค๊ด
โมดูล compileall
ประกอบด้วยฟังก์ชั่นสำหรับการคอมไพล์ไพธอนสคริปต์ทั้งหมดในไดเร็คทอรี่
โมดูล ihooks
เฟรมเวอร์คสำหรับการ import อนุญาตให้ใช้เทคนิคการอิมพอร์ตได้หลายวิธี
โมดูล linecache
ใช้สำหรับการอ่านบรรทัดจากซอร์สโค๊ด มันจะใช้ visited modules ที่เป็นปัจจุบันที่สุด
โมดูล macurl2path
ประกอบด้วยโค๊ดสำหรับการ map URL เป็น Machintosh filename
ท่านสามารถใช้โมดูล urllib แทนได้
โมดูล nturl2path
แม็ฟ URL กับ Windows Filename
โมดูล tokenize
แยกซอร์สโค๊ดของไพธอนเป็น Tokens
โมดูล keyword
ประกอบด้วย list ของคีย์เวอร์ดที่ใช้ในเวอร์ชั่นปัจจุบันของ python
มันเป็น dictionary ที่เก็บ keyword ใช้ตรวจสอบว่ามี keyword ใดบ้างในไพธอน
โมดูล parser
อินเตอร์เฟสกับ Python's built-in parser และ compiler
โมดูล symbol
ประกอบด้วยรายการของ non-terminal symbols จาก python grammar มันเปนประโยชน์สำหรับโมดูล
parser
โมดูล token
ประกอบด้วยลีสต์ทั้งหมดของ token ที่ใช้โดย standard python tokenizer
โมดูลด้าน : Standard Module
โมดูลต่าง ๆ ที่ใช้ในไพธอน บางทีเราเขียนไพธอนแต่ก็ไม่ได้ใช้โมดูลเหล่านี้
แต่ท่านสามารถช่วยเวลาของท่านได้มาก หากรู้จักมันครับ
โมดูล fileinput
อนุญาตให้ท่านทำการวนลูปเข้าไปในเนื้อหาของเท็กซ์ไฟล์ได้มากกว่าหนึ่งไฟล์
|
>>> import fileinput,sys
>>> for line in fileinput.input("c:\\temp\\test.txt"):
sys.stdout.write(">>
")
sys.stdout.write(line)
|
ผลลัพธ์จะเขียนคำว่า >> ลงไปหน้าข้อความของทุก ๆ บรรทัดในไฟล์ test.txt
โมดูล shutil
สำหรับคัดลอกไฟล์และไดเร็คทอรี่ ฟังก์ชั่น copy() ทำงานเหมือนคำสั่ง cp
ในยูนิกส์
|
import shutil,os
for i in os.listdir('.'):
if os.path.splitext(i)[1]
== '.py':
print
i
shutil.copy(i,os.path.join("backup",i))
|
ฟังก์ชั่น copytree เหมือน cp-r (คัดลอกทั้งไดเร็คทอรี่)
ฟังก์ชั่น rmtree เหมือน rm -r (ลบทั้งไดเร็คทอรี่)
โมดูล tempfile
เขียน temporyry files
|
import tempfile , os
m = tempfile.TemporaryFile()
m.write("x"*100)
m.seek(0)
print m.read()
m.close() # remove the file !!
|
โมดูล StringIO
อิมพลิเมนต์ไฟล์อ็อบเจ็คไว้ในหน่วยความจำหลัก สามารถนำไปทำเป็น input/output
กับไฟล์มาตรฐานได้
|
import StringIO
f = StringIO.StringIO("HELLO WORLD")
f.seek(0)
print f.read()
'HELLO WORLD'
f.write(" KMUTT")
f.seek(0)
print f.read()
'HELLO WORLD KMUTT'
|
โมดูล cStringIO
อิมพลิเมนต์ให้เร็วกว่า StringIO ทำงานได้เหมือน StringIO แต่ไม่สามารถเป็น
subclass ได้
|
import StringIO
f = cStringIO.StringIO("HELLO WORLD")
f.seek(0)
print f.read()
'HELLO WORLD'
f.write(" KMUTT")
f.seek(0)
print f.read()
'HELLO WORLD KMUTT'
|
โมดูล mmap
อินเตอร์เฟสกับหน่วยความจำของระบบปฏิบัติการ ซึ่งแม็พให้เหมือนสตริงอ็อบเจ็ค
แต่ข้อมูลสามารถอ่านได้โดยตรง ทำให้สามารถใช้ re (regular expression) ร่วมได้เลย!!
|
import mmap,os
filename = "c:\\temp\\rows.txt"
f = open(filename,"r+")
size = os.path.getsize(filename)
m = mmap.mmap(f.fileno(),size)
print len(m)
print repr(m.read(10))
'ADMBED\t887'
print repr(m.read(10))
'9\r\nADMMAST'
|
โมดูล UserDict
ประกอบด้วยคลาส dictionary (ชนิดข้อมูลแบบดิกชันนารี)
โมดูล UserList
ประกอบด้วยคลาส list ทำงานกับตัวแปรชนิดลีสต์
โมดูล UserString
ประกอบด้วยสองคลาส UserString และ MutableString
UserString หุ้ม Standard String type
MutableString อนุญาตให้แก้ไขสตริงได้
โมดูล traceback
อนุญาตให้แสดง exception tracebacs ภายในโปรแกรม เหมือนที่อินเตอร์พรีเตอร์ทำเมื่อท่านไม่ตรวจ
exception ของท่านเอง
โมดูล errno
กำหนด symbolic error codes เช่น ENOENT ("no such directory entry"),
EPERM ("permission denied") และอื่น ๆ
มันสามารถแม็พจาก platform ได้ด้วย ส่วนมากแล้ว IOError จะใช้ 2 tuple
ด้วย numerical error code
โมดูล getopt
ประกอบด้วยคำสั่งพิเศษ และอาร์กิวเมนต์ต่าง ๆ ที่สามารถ handle ได้ทั้ง
short และ long option formats
อาร์กิวเมนต์ที่สองกำหนด short options ที่ยอมให้เกิดขึ้น ซึ่ง (:) ตามด้วยชื่อ
option
โมดูล getpass
จัดเตีรยม platform independent ในการป้อนรหัสผ่านใน command-line
user = getpass.getuser()
pwd = getpass.getpass(">> ")
// การรับรหัสผ่านอาจเกิดการ Error รหัสผ่านออกมานี่คือข้อผิดพลาดที่เกิดขึ้นของโมดูลนี้
โมดูล glob
สร้างลีสต์ของไฟล์ที่สอดคล้องกับรูปแบบที่กำหนดไว้
filename = glob.glob("c:\\winnt\\*.dll")
โมดูล fnmatch
อนุญาตให้จับคู่ไฟล์ที่สอดคล้องกัน
เหมือนการใช้ใน Unix เ่ชน (*) หรือ (?)
โมดูล random
สุ่มเลขใช้อัลกอริทึมโดย Wichmann & Hill, 1982
|
import random
print random.random()
print random.uniform(10,20)
print random.randint(100,1000)
print random.randrange(10,100,2)
|
โมดูล whrandom
สุ่มด้วยอัลกอริทึมของ Wichmann & Hill , 1982 (ไม่แชร์ internal state)
มันจะดีกว่านี้ถ้าท่านใช้้โมดูล random แทน
โมดูล md5
ใช้ในการคำนวณ message signatures (เรียกว่า "message digests")
อัลกอริทึม MD5 คำนวณ signature ขนาด 128 บิต
//พึงระวัง อย่าลืมว่า pseudo random number generator ไม่ใช่วิธีการเข้ารหัสที่ดีพอ
//
โมดูล sha
ทางเลือกในการคำนวณ message signatures มันคล้ายกับโมดูล md5 แต่สร้าง
signature ขนาด 160 บิตแทน
โมดูล crypt
(ยูนิกส์เท่านั้น) เป็นการเข้ารหัสทางเดียว DES Encription ในระบบยูนิกส์ใช้การเข้ารหัสด้วยอัลกอริทึมแบบนี้
เพื่อเก็บรหัสผ่าน และโมดูลนี้เป็นประโยชน์ในการสังเคราะห์ หรือตรวจสอบรหัสผ่าน
โมดูล rotor
อัลกอริทึมการเข้ารหัสแบบง่าย ๆ บน WWII Enigma engine
โมดูล zlib
สนับสนุนการบีบอัดและคลายการบีบอัดแบบ "zlib" (รู้จักกันดีในชื่อเีรียกว่า
"deflate")
โมดูล code
จำนวนของฟังก์ชั่นต่าง ๆ ที่สามารถใช้ในการจำลองพฤติกรรมของ standa5rd
interpreter's interactive mode
คำสั่ง compile_command คล้ายกับฟังก์ชั่น compile แต่ได้มีการเพิ่มและตรวจสอบให้มันทำงานด้วย
python statement อย่างสมบูรณ์
โมดูลด้าน : Core Module
โมดูล __builtin__
ฟังก์ชั่นที่เป็น built-in function ซึ่งโหลดอัตโนมมัติเมื่อไพธอนถูกเรียกใช้งาน
โมดูล os
จัดเตรียมอินเตอร์เฟสกับฟังก์ชั่นต่าง ๆ และระบบปฏิบัติการ
โมดูล stat
ประกอบด้วยฟังก์ชั่นและค่าคงที่ซึ่งสามารถใช้ได้กับ os.stat
โมดูล string
ประกอบด้วยฟังก์ชั่นต่าง ๆ ในการประมวลผลไพธอนสตริง
โมดูล re
ประกอบด้วยฟังก์ชั่นที่เป็นประโยชน์เกี่ยวกับ Regular Expression เพื่อจับคู่ข้อความที่สอดคล้องกับรูปแบบที่กำหนดไว้
โมดูล math
ฟังก์ชั่นการคำนวณด้านคณิตศาสตร์
โมดูล cmath
ฟังก์ชั่นการคำนวณด้านคณิตศาสตร์ ใช้กับเรื่องจำนวนจินตภาพ (Complex
Number)
โมดูล operator
อินเตอร์เฟสกับโอเปอร์เรเตอร์มาตรฐานของไพธอน สามารถใช้แทน lambda เมื่อประมวลผลข้อมูลด้วยฟังก์ชั่น
map และ filter
โมดูล copy
ประกอบด้วยสองฟังก์ชั่นคือ copy(object) และ deepcopy(object)
โมดูล sys
ฟังก์ชั่นและตัวแปรต่าง ๆ ที่สามารถใช้ในระบบปฏิบัติการที่แตกต่างกันออกไป
print sys.argv
โมดูล atexit
อนุญาตให้ลงทะเบียนฟังก์ชั่นตาง ๆ ที่ถูกเรียกใช้งานเมื่ออินเตอร์พรีเตอร์ได้หยุดการทำงานไปแล้ว
โมดูล time
ประกอบด้วยฟังก์ชั่นทำงานกับวันที่และเวลา จัดอยู่ใน thin layer ของ
C runtime library
แทนค่าด้วย floating point value (ตั้งแต่วันที่ 1 January, 1970)
โมดูล types
ประกอบด้วย type ต่าง ๆ ใน standard interpreter ภาษาไพธอน
ตรวจสอบว่าเป็นอ็อบเจ็คเดียวกันหรือไม่ด้วยคำสั่ง is
โมดูล gc
เป็น built-in cyclic garbage collector สำหรับจัดการหน่วยความจำหลักที่ไม่ต่อเนื่องเพื่อให้เกิดประสิทธิภาพการทำงาน
โมดูลด้าน : Threading
โมดูล threading
เป็น Higher-level interface สำหรับการเขียนเธรด
โมดูล queue
ใช้สำหรับ thread-safe queue implementation
โมดูล thread
เป็น low-level interface สำหรับการเขียนเธรด ท่านควรใช้ โมดูล threading
แทน
โมดูล commands
(ยูนิกส์เท่านั้น) ออกแบบให้เอ็กซีคิวส์คำสั่ง unix
|
import commands
stat , output = commands.getstatusoutput("ls -al")
print stat, len(output)
|
โมดูล pipes
(ยูนิกส์เท่านั้น) ประกอดบด้วยฟังก์ชั่นในการสร้าง "conversion
pipelines"
ใช้สร้าง pipeline ประกอบด้วย external utilities และใช้กับไฟล์
โมดูล popen2
อนุญาตให้รัน external command และใช้ stdin/stdout ได้
โมดูล signal
ใช้ในการติดตั้ง signal handlers ของท่านเอง
เมื่ออินเตอร์พรีเตอร์เห็น signal, signal handler ซึ่งถูกเอ็กซีคิวส์ที่ผ่านมา
!!
โมดูลด้าน : Data Representation
โมดูล array
โมดูลนี้มีประสิทธิภาพในการเก็บข้อมูลแบบอาร์เรย์ และคล้ายกับตัวแปรลีสต์
แต่ทุก ๆ ไอเท็มต้องเป็นชนิดข้อมูลเดียวกันเท่านั้น ซึ่งชนิดข้อมูลจะต้องถูกกำหนดเมื่อมีการสร้างอาร์เรย์
โมดูล struct
โมดูล struct ประกอบด้วยฟังก์ชั่นต่าง ๆ สำหรับแปลงระหว่างสตริงแบบไบนารีและชนิด
tuple
โมดูล xdrlib
โมดูล xdrlib สำหรับแปลงข้อมูลระหว่างตัวแปรในไพธอนและบริษัท XDR (บริษัท
Sun)
รูปแบบ XDR ใช้สำหรับ Remote Procedure Call ของบริษัท Sun
โมดูล marshal
โมดูล marshal ใช้สำหรับแปลงข้อมูลระหว่าง character strings เพื่อให้สามารถเก็บลงบนไฟล์หรือส่งไปยังเน็ตเวอร์คได้
โมดูล pickle
โมดูล pickle ทำงานเหมือน marshal แต่ไม่สามารถเก็บอ็อบเจ็คชนิด code ได้เหมือน
marshal แต่สามารถเก็บข้อมูลที่เป็นชนิดคลาสและอินสแตนท์ได้ การประมวลผลจึงช้ากว่า
โมดูล marshal ถ้าต้องการให้เก็บข้อมูลชนิด code object ต้องใช้โมดูล copy_reg
ร่วมด้วย
โมดูล cPickle
โมดูล cPickle เป็นการปรับปรุงโมดูล pickle ให้เร็วขึ้น ซึ่งโมดูล cPickle
เขียนขึ้นด้วยภาษาซี
โมดูล copy_reg
การลงทะเบียนที่ท่านสามารถใช้ register ประเภทไฟล์ของท่านเอง
โมดูล pprint
โมดูล pprint สำหรับการพิมพ์ผ่านเครื่องพิมพ์ เป็นประโยชน์ถ้าท่านต้องพรินต์ข้อมูลที่เป็นโครงสร้างข้อมูลลงไปยังคอนโซล
โมดูล repr
เหมือน built-in repr function แต่ใช้สำหรับสตริงที่เป็น recursion
ใช้สำหรับแสดงเครื่องหมาย string ให้กับสตริงที่เป็นแบบ recusive (เกิดซ้ำ)
โมดูล base64
โมดูล base64 ใช้สำหรับแปลงข้อมูลไบนารีสตริงให้เป็นเท็กซ์ธรรมดา มีสองฟังก์ชั่นสำคัญ
encode() และ decode()
โมดูล binhex
โมดูล binhex สำหรับแปลงข้อมูลไบนารีสตริงเป็น Macintosh binhex
โมดูล quopri
โมดูล quopri สำหรับเข้ารหัส ขึ้นอยู่กับมาตรฐานของ MIME ซึ่งใช้เข้ารหัสและสามารถนำไปใช้ได้
ถ้าท่านต้องการเปีล่ยนข้อความซึ่งประกอบด้วย US ASCII Text เช่น ข้อความที่เขียนขึ้นจากภาษายุโรปไปเป็นข้อความที่ใช้เพียง
US ASCII โมดูลนี้มีประโยชน์ถ้าท่านส่งผ่าน steam-powered mail transports
ไปให้ผู้ที่ใช้ vintage mail agents
โมดูล uu
โมดูล uu ใช้เข้ารหัสและแปลงเป็นข้อมูลไบนารีไปเป็นเท็กซ์ธรรมดา นิยมนำไปใช้ใน
usenet แต่ว่าจะช้าเพราะมีแม่เป็น base64 encoding
การเข้ารหัส UU ใช้ 24 บิต และแปลงแต่ละกลุ่มเป็นลำดับทีละ 4 ตัวอักษร(6
บิตต่อตัวอักษร) การใช้อักขระจาก chr(32) ซึ่งเป็นสเปสบาร์ ไปเป็น chr(95)
รวมถึงความยาวและอักขระขึ้นบรรทัดใหม่ ซึ่งการเข้ารหัสแบบ UU ปกติแล้วขยายข้อมูลขึ้นไปได้
40%
โมดูล binascii
โมดูล binascii สำหรับเข้ารหัส รวมถึง base64, binhex และ uu ซึ่งเวอร์ชั่นใหม่นี้อนุญาตให้ท่านแปลงข้อมูลไบนารีจากรูปแบบ
hexadecimal strings ได้
โมดูลด้าน : Networking
โมดูล socket
โมดูล socket ใช้เชื่อมต่อกับซ็อกเก็ตเลเยอร์ ท่านสามารถสร้างการเชื่อมต่อได้ทั้งแบบแม่ข่าย
หรือลูกข่ายด้วยโมดูลนี้
โมดูล select
โมดูล select อนุญาตให้ท่านตรวจสอบข้อมูลที่ส่งเข้ามายังซ็อกเก็ตได้มากกว่าหนึ่งซ็อกเก็ต
และสนับสนุนการเชื่อมเข้ามาแบบสตรีมอ็อบเจ็ค
สามารถใช้ฟังก์ชั่น select ในการคอยจะกว่าจะสามารถอ่านหรือเขียนหรือว่าเกิดข้อผิดพลาด
- socket จะเปลี่ยนเป็นพร้อมในการอ่าน
ค่าเป็น 1 เช่น เมื่อบางคนเชื่อมเข้ามาหลังจากเรียกคำสั่ง
listen
ค่าเป็น 2 รับแต่ไม่บล็อก
ค่าเป็น 3 เมื่อปิดซ็อกเก็ตหรือรีเซ็ต
- ซ็อกเก็ตเปลี่ยนเป็นพร้อมสำหรับการเขียน
ค่าเป็น 1 การเชื่อมต่อถูกสร้างหลังจากไม่มีการบล็อกที่เีรียก
connect
ค่าเป็น 2 ข้อมูลสามารถเขียนลงบนซ็อกเก็ต
- ซ็อกเก็ตมีค่าความผิดพลาดเมื่อมีการเรียก connect
โมดูล asyncore
โมดูล asyncore สำหรับโต้ตอบกับซ็อกเก็ต แทนที่จะสร้างอ็อบเจ็คซ็อกเก็ต
และเีรียกเมธอดเพื่อทำงาน แต่โมดูลนี้จะอนุญาตให้ท่านเขียนโค๊ดที่ถูกเรียกเมื่อบางเกตุการณ์ได้เสร็จสิ้นลงไป
ในการอิมพลิเมนต์ท่านต้องใช้ dispatcher class และถ่ายทอดเมธอดต่อไปนี้ :
- handle_connect ถูกเรียกเมื่อการเชื่อมต่อสมบูรณ์
- handle_expt ถูกเรียกเมื่อการเชื่อมต่อล้มเหลว
- handle_accept ถูกเรียกเมื่อการร้องขอถูกตอบรับ
- handle_read ถูกเรียกเมื่อมีการอ่านจากซ็อกเก็ต
- handle_write ถูกเรียกเมื่อเขียนข้อมูลลงซ็อกเก็ต
- handle_close ถูกเีรียกเมื่อปิดหรือรีเซ็ตซ็อกเก็ต
- handle_error ถูกเรียกเมื่อมีความผิดพลาด
โมดูล asynchat
ขยายมาจากโมดูล asyncore โดยสนับสนุน line oriented protocols
ปรับปรุง buffering support ผ่านเมธอด push
โมดูล urllib
โมดูล urllib ใช้อินเตอร์เฟสสำหรับ http, ftp และ gopher มันจะควบคุม URL
โดยการอ่านข้อมูลจาก URL ด้วยวิธีการที่ง่าย โดยเรียกฟังก์ชั่น urlopen()
โมดูล urlparse
ประมวลผล URL(Uniform Resouce Locators) เพื่อแปลงให้อยู่ในรูปแบบไฟล์ของแต่ละเพลตฟอร์ม
โมดูล Cookie
สนับสนุน cookie ที่ใช้กับ HTP clients และ Servers
โมดูล ftplib
จัดการเกี่ยวกับการ ftp เข้าไปยังแม่ข่ายที่ให้บริการ
โมดูล gopherlib
จัดการเกี่ยวกับการใช้งาน gopher กับแม่ข่ายที่ให้บริการ
โมดูล httplib
จัดการเกี่ยวกับการใช้งาน Low-Level HTTP กับแม่ข่ายที่ให้บริการ
โมดูล poplib
สนับสนุน Post Office Protocol(POP3)
ใช้สำหรับคัดลอกข้อความข่าวสารจาก Central Mail Server มายัง Local Computer
โมดูล imaplib
สนับสนุน Internet Message Access Protocol (IMAP) สำหรับบริการลูกข่าย
โปรโตคอลนี้เข้าถึงเมล์โฟล์เดอร์ บน Central mail Server
โมดูล smtplib
สนับสนุน Simple Mail Transfer protocol (SMTP) สำหรับบริการลูกข่าย
โปรโตคอลนี้ใช้ส่งเมล์ผ่าน Unix Mailservers
โมดูล telnetlib
สนับสนุน TELNET สำหรับลูกข่าย
โมดูล nntplib
สนับสนุน Network New Transfer Protocol(NNTP) สำหรับบริการลูกข่าย
โมดูล SocketServer
สนับสนุนเฟรมเวอร์คของ socket-based servers หลาย ๆ ชนิด
ประกอบด้วยคลาสสนับสนุน ที่สามารถรวมและจับคู่กับแม่ข่าย สำหรับจุดประสงค์การบริการที่แตกต่างกัน
โมดูล BaseHTTPServer
สนับสนุนเฟรมเวอร์คสำหรับ HTTP Server สร้างบน SocketServer framework
โมดูล SimpleHTTPServer
สนับสนุน Simple HTTP server ซึ่งใช้มาตรฐาน GET และ HEAD สำหรับจัดการ
request handlers
ชื่อไฟล์ของ client จะถูกแปลเป็นชื่อไฟล์ที่สอดคล้องกัน
โมดูล CGIHTTPServer
สนับสนุน Simple HTTP Server ที่สามารถเรียก external scripts ผ่าน CGI
โมดูล cgi
สนับสนุน Common Gateway Interface (CGI) มันสามารถอ่านค่าจากฟอร์มได้
โมดูล webbrowser
สนับสนุนการอินเตอร์เฟสง่าย ๆ สำหรับเว็บบราวเซอร์ของระบบปฏิบัติการนั้น
ๆ
webbrowser.open("http://localhost")
|
|
|

|
|