可爱的python_《可爱的Python》读书笔记
先用后學,快速獲得體驗,然后尋求理論支持。
小白根據已有的體驗,對PyCDC的軟件需求進行了進一步完善。
將以往驗證想法的代碼,變成可以方便使用的功能,讓它可以重復在不同應用環境中使用。小白想象著自個兒的PyCDC可以像普通的命令行工具一樣來使用。
行者提出“可以使用getopt.getopt()優化當前功能函式”
#?-*-?coding:?utf-8?-*-import?osimport?sysimport?getopt??CDROM=?'E:\\'def?cdWalker(cdrom,cdcfile):export=?""for?root,?dirs,?filesin?os.walk(cdrom):export+=?"\n?%s;%s;%s"?%?(root,dirs,files)open(cdcfile,'w').write(export)#運行命令行工具的幫助提示def?usage():print('Usage:python?%s?-e?filename'?%?sys.argv[0])?try:opts,?args=?getopt.getopt(sys.argv[1:],'e:')#內有輸入參數將顯示幫助提示,并退出程序if?len(opts)==?0:usage()sys.exit()for?opt,?argin?opts:if?opt==?'-e':cdWalker(CDROM,?arg)print("記錄光盤信息到?%s"?%?arg)else:usage()sys.exit()except?getopt.GetoptError:usage()sys.exit()
運行效果:C:\>python?pycdc.pywUsage:python?pycdc.pyw?-e?filenameC:\>python?pycdc.pyw?-etest.txt記錄光盤信息到test.txt
查看test.txt內容如下:
E:\;['EFI', 'images', 'isolinux', '[BOOT]'];['.discinfo', '.treeinfo', 'CentOS_BuildTag', 'EULA', 'GPL', 'RELEASE-NOTES-en-US.html', 'RPM-GPG-KEY-CentOS-6', 'RPM-GPG-KEY-CentOS-Debug-6', 'RPM-GPG-KEY-CentOS-Security-6', 'RPM-GPG-KEY-CentOS-Testing-6', 'TRANS.TBL']
E:\EFI;['BOOT'];['TRANS.TBL']
E:1\EFI\BOOT;[];['BOOTX64.conf', 'BOOTX64.efi', 'splash.xpm.gz', 'TRANS.TBL']
E:\images;['pxeboot'];['efiboot.img', 'efidisk.img', 'install.img', 'TRANS.TBL']
E:\images\pxeboot;[];['initrd.img', 'TRANS.TBL', 'vmlinuz']
E:\isolinux;[];['boot.cat', 'boot.msg', 'grub.conf', 'initrd.img', 'isolinux.bin', 'isolinux.cfg', 'memtest', 'splash.jpg', 'TRANS.TBL', 'vesamenu.c32', 'vmlinuz']
E:\[BOOT];[];['1-Boot-NoEmul.img', '2-Boot-NoEmul.img']
小白雖然不是非常明白getopt的使用,也還是依葫蘆畫瓢寫了出來,基本實現了想要的功能。
總結:今天學習了使用簡單的getopt實現基本的命令行工具,使用了try...except處理異常,使得程序變得更方便使用
總結
以上是生活随笔為你收集整理的可爱的python_《可爱的Python》读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python算闰年和平年的天数_Pyth
- 下一篇: 大牙掉了一定要种植吗