ebook img

Python 101 PDF

295 Pages·2016·29.531 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Python 101

Python 101 Michael Driscoll Thisbookisforsaleathttp://leanpub.com/python_101 Thisversionwaspublishedon2016-10-27 ThisisaLeanpubbook.LeanpubempowersauthorsandpublisherswiththeLeanPublishing process.LeanPublishingistheactofpublishinganin-progressebookusinglightweighttoolsand manyiterationstogetreaderfeedback,pivotuntilyouhavetherightbookandbuildtractiononce youdo. ©2014MichaelDriscoll Also By Michael Driscoll Python201 wxPythonCookbook Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ABriefHistoryofPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 AbouttheAuthor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ReaderFeedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 PartI-LearningtheBasics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Chapter1-IDLEProgramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 UsingIDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 OtherTips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapter2-AllAboutStrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 HowtoCreateaString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 StringConcatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 StringMethods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 StringSlicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 StringFormatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Chapter3-Lists,TuplesandDictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Chapter4-ConditionalStatements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Theifstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 BooleanOperations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 CheckingforNothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 SpecialCharacters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 if__name__==“__main__” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 CONTENTS WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Chapter5-Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 TheforLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ThewhileLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Whatelseisforinloops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Chapter6-PythonComprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ListComprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 DictionaryComprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 SetComprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Chapter7-ExceptionHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 CommonExceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 HowtoHandleExceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ThefinallyStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 try,except,orelse! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Chapter8-WorkingwithFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 HowtoReadaFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 HowToReadFilesPiecebyPiece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 HowtoReadaBinaryFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 WritingFilesinPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 UsingthewithOperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 CatchingErrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Chapter9-Importing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 importthis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Usingfromtoimport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ImportingEverything! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Chapter10-Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 AnEmptyFunction(thestub) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 PassingArgumentstoaFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 KeywordArguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 *argsand**kwargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 ANoteonScopeandGlobals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 CodingTips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 CONTENTS Chapter11-Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 CreatingaClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Whatisself? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Subclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 PartII-LearningfromtheLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Chapter12-Introspection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ThePythonType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ThePythonDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 PythonHelp! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Chapter13-ThecsvModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 ReadingaCSVFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 WritingaCSVFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Chapter14-configparser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 CreatingaConfigFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 HowtoRead,UpdateandDeleteOptions . . . . . . . . . . . . . . . . . . . . . . . . . . 82 HowtoUseInterpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Chapter15-Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 CreatingaSimpleLogger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 HowtologFromMultipleModules(andFormattingtoo!) . . . . . . . . . . . . . . . . . 87 ConfiguringLogsforWorkandPleasure . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Chapter16-TheosModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 os.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 os.environ,os.getenv()andos.putenv() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 os.chdir()andos.getcwd() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 os.mkdir()andos.makedirs() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 os.remove()andos.rmdir() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 os.rename(src,dst) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 os.startfile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 os.walk() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 os.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 os.path.basename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 os.path.dirname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 os.path.exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 CONTENTS os.path.isdir/os.path.isfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 os.path.join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 os.path.split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Chapter17-Theemail/smtplibModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 EmailBasics-HowtoSendanEmailwithsmtplib . . . . . . . . . . . . . . . . . . . . . 104 SendingMultipleEmailsatOnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 SendemailusingtheTO,CCandBCClines . . . . . . . . . . . . . . . . . . . . . . . . . 109 Addanattachment/bodyusingtheemailmodule . . . . . . . . . . . . . . . . . . . . . 110 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Chapter18-ThesqliteModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 HowtoCreateaDatabaseandINSERTSomeData . . . . . . . . . . . . . . . . . . . . . 113 UpdatingandDeletingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 BasicSQLiteQueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Chapter19-ThesubprocessModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Thecallfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ThePopenClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 LearningtoCommunicate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Chapter20-ThesysModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 sys.argv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 sys.executable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 sys.exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 sys.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 sys.platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 sys.stdin/stdout/stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Chapter21-Thethreadingmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 UsingThreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 WritingaThreadedDownloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 UsingQueues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Chapter22-WorkingwithDatesandTime . . . . . . . . . . . . . . . . . . . . . . . . . . 135 ThedatetimeModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 datetime.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 datetime.datetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 datetime.timedelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 CONTENTS ThetimeModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 time.ctime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 time.sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 time.strftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 time.time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Chapter23-Thexmlmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Workingwithminidom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ParsingwithElementTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 HowtoCreateXMLwithElementTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 HowtoEditXMLwithElementTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 HowtoParseXMLwithElementTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 PartIII-IntermediateOddsandEnds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Chapter24-ThePythonDebugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 HowtoStarttheDebugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 SteppingThroughtheCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Settingbreakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Chapter25-Decorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 ASimpleFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 CreatingaLoggingDecorator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Built-inDecorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 @classmethodand@staticmethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 PythonProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 ReplacingSettersandGetterswithaPythonproperty . . . . . . . . . . . . . . . . . . . . 165 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Chapter26-Thelambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Tkinter+lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Chapter27-CodeProfiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 ProfilingYourCodewithcProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Chapter28-AnIntrotoTesting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Testingwithdoctest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 RunningdoctestviatheTerminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 RunningdoctestInsideaModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 RunningdoctestFromaSeparateFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 CONTENTS TestDrivenDevelopmentwithunittest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 TheFirstTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 TheSecondTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 TheThird(andFinal)Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 OtherNotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 PartIV-Tips,TricksandTutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Chapter29-InstallingModules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 InstallingfromSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Usingeasy_install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Usingpip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 ANoteonDependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Chapter30-ConfigObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 GettingStarted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Usingaconfigspec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Chapter31-ParsingXMLwithlxml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 ParsingXMLwithlxml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 ParsingtheBookExample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 ParsingXMLwithlxml.objectify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 CreatingXMLwithlxml.objectify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Chapter32-PythonCodeAnalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 GettingStartedwithpylint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 AnalyzingYourCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 GettingStartedwithpyflakes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Chapter33-Therequestspackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Usingrequests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 HowtoSubmitaWebForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Chapter34-SQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 HowtoCreateaDatabase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 HowtoInsert/AddDatatoYourTables . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 HowtoModifyRecordswithSQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . 222 HowtoDeleteRecordsinSQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 TheBasicSQLQueriesofSQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 CONTENTS WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Chapter35-virtualenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 CreatingaVirtualEnvironment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 PartV-PackagingandDistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Chapter36-CreatingModulesandPackages . . . . . . . . . . . . . . . . . . . . . . . . . 230 HowtoCreateaPythonModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 HowtoCreateaPythonPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Chapter37-HowtoAddYourCodetoPyPI . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Creatingasetup.pyFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 RegisteringPackages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 UploadingPackagestoPyPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Chapter38-ThePythonegg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Creatinganegg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Chapter39-Pythonwheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 GettingStarted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Creatingawheel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 InstallingaPythonwheel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Chapter40-py2exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 CreatingaSimpleGUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Thepy2exesetup.pyfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 CreatinganAdvancedsetup.pyFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Chapter41-bbfreeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 GettingStartedwithbbfreeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Usingbbfreeze’sAdvancedConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 252 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Chapter42-cx_Freeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 GettingStartedwithcx_Freeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Advancedcx_Freeze-Usingasetup.pyFile . . . . . . . . . . . . . . . . . . . . . . . . . 258 WrappingUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.