µÚ12Õ Windowsϵͳ±à³Ì
12.1 ²éÔÄÏà¹Ø×ÊÁÏ£¬½âÊÍ×¢²á±í¼¸´ó¸ù¼üµÄÓÃ;¡£ ´ð£ºÂÔ
12.2 Ñ¡ÔñÒ»¸ö±àдºÃµÄPython³ÌÐò£¬½«Æäת»»Îªexe¿ÉÖ´ÐÐÎļþ¡£ ´ð£ºÂÔ£¬Çë²Î¿¼ÊéÖÐÏà¹Ø½éÉÜ¡£
12.3 ±àд´úÂ룬ʹÓÃÖÁÉÙ3Öв»Í¬µÄ·½·¨Æô¶¯Windows×Ô´øµÄ¼ÆËãÆ÷³ÌÐò¡£ ´ð£º µÚÒ»ÖÖ·½·¨£º >>> import os
>>> os.system('calc.exe')
µÚ¶þÖÖ·½·¨£º >>> import os
>>> os.popen('calc.exe')
µÚÈýÖÖ·½·¨£º >>> import os
>>> os.startfile('calc.exe')
µÚËÄÖÖ·½·¨£º
>>> import win32api
>>> win32api.ShellExecute(0, 'open', 'calc.exe', '', '', 1)
µÚÎåÖÖ·½·¨£º
>>> import win32process >>> handle=win32process.CreateProcess(r'c:\\windows\\system32\\calc.exe','', None,None,0, win32process.CREATE_NO_WINDOW, None, None,win32process.STARTUPINFO())
12.4 ±àд´úÂ룬¼ì²âÄúËùʹÓõIJÙ×÷ϵͳ°æ±¾¡£ ´ð£ºÂÔ£¬Çë²Î¿¼12.5½Ú¡£
µÚ13Õ ¶àÏ̱߳à³Ì
13.1 ¼òµ¥ÐðÊö´´½¨Ï̵߳ķ½·¨¡£ ´ð£º
ThreadÀàÖ§³ÖʹÓÃÁ½ÖÖ·½·¨À´´´½¨Ị̈߳¬Ò»ÖÖÊÇΪ¹¹Ô캯Êý´«µÝÒ»¸ö¿Éµ÷ÓöÔÏó£¬ÁíÒ»ÖÖÊǼ̳ÐThreadÀಢÔÚÅÉÉúÀàÖÐÖØÐ´__init__()ºÍrun()·½·¨¡£´´½¨ÁËÏ̶߳ÔÏóÒԺ󣬿ÉÒÔµ÷ÓÃÆästart()·½·¨À´Æô¶¯£¬¸Ã·½·¨×Ô¶¯µ÷ÓøÃÀà¶ÔÏóµÄrun()·½·¨£¬´Ëʱ¸ÃÏ̴߳¦ÓÚalive״̬£¬Ö±ÖÁÏ̵߳Ärun()·½·¨ÔËÐнáÊø¡£
13.2 ¼òµ¥ÐðÊöThread¶ÔÏóµÄ·½·¨¡£ ´ð£º
£¨1£©join([timeout]£º×èÈûµ±Ç°Ị̈߳¬µÈ´ý±»µ÷Ï߳̽áÊø»ò³¬Ê±ºóÔÙ¼ÌÐøÖ´Ðе±Ç°Ï̵߳ĺóÐø´úÂ룬²ÎÊýtimeoutÓÃÀ´Ö¸¶¨×µÈ´ýʱ¼ä£¬µ¥Î»ÎªÃë¡£
£¨2£©isAlive()£º²âÊÔÏß³ÌÊÇ·ñ´¦ÓÚÔËÐÐ״̬
£¨3£©start()£º×Ô¶¯µ÷ÓÃrun()·½·¨£¬Æô¶¯Ị̈߳¬Ö´ÐÐÏ̴߳úÂë¡£
£¨4£©run()£ºÏ̴߳úÂ룬ÓÃÀ´ÊµÏÖÏ̵߳ŦÄÜÓëÒµÎñÂß¼£¬¿ÉÒÔÔÚ×ÓÀàÖÐÖØÐ´¸Ã·½·¨À´×Ô¶¨ÒåÏ̵߳ÄÐÐΪ¡£
13.3 ¼òµ¥ÐðÊöÏ̶߳ÔÏóµÄdaemonÊôÐÔµÄ×÷ÓúÍÓ°Ïì¡£ ´ð£º
Ôڽű¾ÔËÐйý³ÌÖÐÓÐÒ»¸öÖ÷Ị̈߳¬ÈôÔÚÖ÷Ïß³ÌÖд´½¨ÁË×ÓỊ̈߳¬µ±Ö÷Ï߳̽áÊøÊ±¸ù¾Ý×ÓÏß³ÌdaemonÊôÐÔÖµµÄ²»Í¬¿ÉÄܻᷢÉúÏÂÃæµÄÁ½ÖÖÇé¿öÖ®Ò»£º1£©µ±Ä³×ÓÏ̵߳ÄdaemonÊôÐÔΪFalseʱ£¬Ö÷Ï߳̽áÊøÊ±»á¼ì²â¸Ã×ÓÏß³ÌÊÇ·ñ½áÊø£¬Èç¹û¸Ã×ÓÏß³ÌÉÐδÍê³É£¬ÔòÖ÷Ï̻߳áµÈ´ýËüÍê³ÉºóÔÙÍ˳ö£»2£©µ±Ä³×ÓÏ̵߳ÄdaemonÊôÐÔΪTrueʱ£¬Ö÷Ïß³ÌÔËÐнáÊøÊ±²»¶Ô¸Ã×ÓÏ߳̽øÐмì²é¶øÖ±½ÓÍ˳ö£¬Í¬Ê±ËùÓÐdaemonֵΪTrueµÄ×ÓÏ߳̽«ËæÖ÷Ïß³ÌÒ»Æð½áÊø£¬¶ø²»ÂÛÊÇ·ñÔËÐÐÍê³É¡£daemonÊôÐÔµÄֵĬÈÏΪFalse£¬Èç¹ûÐèÒªÐ޸ģ¬Ôò±ØÐëÔÚµ÷ÓÃstart()·½·¨Æô¶¯Ïß³Ì֮ǰ½øÐÐÐ޸ġ£
13.4 ½âÊÍÖÁÉÙ3ÖÖÏß³Ìͬ²½·½·¨¡£ ´ð£º
£¨1£©Ê¹ÓÃCondition¶ÔÏó¿ÉÒÔÔÚijЩʼþ´¥·¢ºó²Å´¦ÀíÊý¾Ý£¬¿ÉÒÔÓÃÓÚ²»Í¬Ïß³ÌÖ®¼äµÄͨÐÅ»ò֪ͨ£¬ÒÔʵÏÖ¸ü¸ß¼¶±ðµÄͬ²½¡£Condition¶ÔÏó³ýÁ˾ßÓÐacquire()ºÍrelease()·½·¨Ö®Í⣬
»¹ÓÐwait()¡¢notify()¡¢notify_all()µÈ·½·¨¡£ÏÂÃæÍ¨¹ý¾µäÉú²úÕß/Ïû·ÑÕßÎÊÌâÀ´ÑÝʾCondition¶ÔÏóµÄÓ÷¨¡£
£¨2£©QueueÄ£¿é£¨ÔÚPython 3ÖÐΪqueueÄ£¿é£©ÊµÏÖÁ˶àÉú²úÕß/¶àÏû·ÑÕß¶ÓÁУ¬ÓÈÆäÊʺÏÐèÒªÔÚ¶à¸öÏß³ÌÖ®¼ä½øÐÐÐÅÏ¢½»»»µÄ³¡ºÏ£¬¸ÃÄ£¿éµÄQueue¶ÔÏóʵÏÖÁ˶àÏ̱߳à³ÌËùÐèÒªµÄËùÓÐËøÓïÒå¡£
£¨3£©Event¶ÔÏóÊÇÒ»ÖÖ¼òµ¥µÄÏß³ÌͨÐż¼Êõ£¬Ò»¸öÏß³ÌÉèÖÃEvent¶ÔÏó£¬ÁíÒ»¸öÏ̵߳ȴýEvent¶ÔÏó¡£Event¶ÔÏóµÄset()·½·¨¿ÉÒÔÉèÖÃEvent¶ÔÏóÄÚ²¿µÄÐźűêÖ¾ÎªÕæ£»clear()·½·¨¿ÉÒÔÇå³ýEvent¶ÔÏóÄÚ²¿µÄÐźűêÖ¾£¬½«ÆäÉèÖÃΪ¼Ù£»isSet()·½·¨ÓÃÀ´ÅÐ¶ÏÆäÄÚ²¿ÐźűêÖ¾µÄ״̬£»wait()·½·¨Ö»ÓÐÔÚÆäÄÚ²¿ÐźÅ×´Ì¬ÎªÕæÊ±½«ºÜ¿ìµØÖ´Ðв¢·µ»Ø£¬ÈôEvent¶ÔÏóµÄÄÚ²¿Ðźűê־Ϊ¼Ù£¬wait()·½·¨½«Ò»Ö±µÈ´ýÖÁ³¬Ê±»òÄÚ²¿ÐźÅ×´Ì¬ÎªÕæ¡£
µÚ14Õ Êý¾Ý¿â±à³Ì
14.1 ¼òµ¥½éÉÜSQLiteÊý¾Ý¿â¡£ ´ð£º
SQLiteÊÇÄÚǶÔÚPythonÖеÄÇáÁ¿¼¶¡¢»ùÓÚ´ÅÅÌÎļþµÄÊý¾Ý¿â¹ÜÀíϵͳ£¬²»ÐèÒª·þÎñÆ÷½ø³Ì£¬Ö§³ÖʹÓÃSQLÓï¾äÀ´·ÃÎÊÊý¾Ý¿â¡£¸ÃÊý¾Ý¿âʹÓÃCÓïÑÔ¿ª·¢£¬Ö§³Ö´ó¶àÊýSQL91±ê×¼£¬Ö§³ÖÔ×ӵġ¢Ò»Öµġ¢¶ÀÁ¢µÄºÍ³Ö¾ÃµÄÊÂÎñ£¬²»Ö§³ÖÍâ¼üÏÞÖÆ£»Í¨¹ýÊý¾Ý¿â¼¶µÄ¶ÀÕ¼ÐԺ͹²ÏíËø¶¨À´ÊµÏÖ¶ÀÁ¢ÊÂÎñ£¬µ±¶à¸öÏß³Ìͬʱ·ÃÎÊͬһ¸öÊý¾Ý¿â²¢ÊÔͼдÈëÊý¾Ýʱ£¬Ã¿Ò»Ê±¿ÌÖ»ÓÐÒ»¸öÏ߳̿ÉÒÔдÈëÊý¾Ý¡£SQLiteÖ§³Ö2TB´óСµÄµ¥¸öÊý¾Ý¿â£¬Ã¿¸öÊý¾Ý¿âÍêÈ«´æ´¢ÔÚµ¥¸ö´ÅÅÌÎļþÖУ¬ÒÔB+Ê÷Êý¾Ý½á¹¹µÄÐÎʽ´æ´¢£¬Ò»¸öÊý¾Ý¿â¾ÍÊÇÒ»¸öÎļþ£¬Í¨¹ý¼òµ¥¸´ÖƼ´¿ÉʵÏÖÊý¾Ý¿âµÄ±¸·Ý¡£
14.2 ʹÓÃPythonÄÚÖú¯Êýdir()²é¿´Cursor¶ÔÏóÖеķ½·¨£¬²¢Ê¹ÓÃÄÚÖú¯Êýhelp()²é¿´ÆäÓ÷¨¡£
´ð£ºÂÔ¡£
14.3 ÐðÊöʹÓÃPython²Ù×÷AccessÊý¾Ý¿âµÄ²½Öè¡£ ´ð£º
£¨1£©½¨Á¢Êý¾Ý¿âÁ¬½Ó
import win32com.client
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;' conn.Open(DSN)
£¨2£©´ò¿ª¼Ç¼¼¯
rs = win32com.client.Dispatch(r'ADODB.Recordset') rs_name = 'MyRecordset' #±íÃû rs.Open('[' + rs_name + ']', conn, 1, 3)
£¨3£©²Ù×÷¼Ç¼¼¯
rs.AddNew()
rs.Fields.Item(1).Value = 'data' rs.Update()
£¨4£©²Ù×÷Êý¾Ý
conn = win32com.client.Dispatch(r'ADODB.Connection')