My first Python Program -- Command line Address Book
来源:互联网 发布:软件登记测试报告 编辑:程序博客网 时间:2024/05/07 20:26
花了几个小时把A Byte of Python看完以后,我觉得Python确实是简洁易用。
A Byte of Python最后面让大家写一个Command line address book练一下手,
于是就有了我的第一个Python程序了,直接上代码,没什么好解释的。
#!/usr/bin/python2# Filename: address_book.pyimport osimport sysimport cPickle as pimport smtplibimport getpassdef printHelp(): print '''\This is a simple address book.action: add | insert -- add/insert a contact del | delete -- delete a contact search | lookup -- search email by name send -- send email to a contact quit | exit -- exit this program help -- print this help\'''def add(ab): name = raw_input('\tName\t: ') email = raw_input('\tEmail\t: ') ab[name] = emaildef delete(ab): name = raw_input('\tName\t: ') del ab[name]def search(ab): name = raw_input('\tName\t: ') if name in ab: print 'Name: %s\tEmail:%s' %(name, ab[name]) else: print 'No contact %s found' %namedef send(ab): name = raw_input('\tName\t: ') if name in ab: username = raw_input('Username: ') password = getpass.getpass('Password: ') From = os.getenv('EMAIL') if From is None: From = raw_input('From: ') To = ab[name] Subject = raw_input('Subject: ') Text = raw_input('Text: ') Text = "" + Text + "" Header = ["From: " + From, "Subject: " + Subject, "To: " + To, "MIME-Version: 1.0", "Content-Type: text/html"] Header = '\r\n'.join(Header) Host = 'smtp.gmail.com:587' server = smtplib.SMTP(Host) server.starttls() print 'Login...' server.login(username, password) print 'Sending mail...' server.sendmail(From, To, Header + '\r\n\r\n' + Text) server.quit() print 'Finish.' else: print 'No contact %s found' %namedef save(ab, filename): f = file(filename, 'w') p.dump(ab, f) f.close()# Script begins hereif len(sys.argv) != 2: print 'Usage: %s <filename>' %sys.argv[0] sys.exit()# Initializeab = {}filename = sys.argv[1]if os.path.exists(filename): if not os.path.isfile(filename): print '%s is not a file.' %filename sys.exit() else: f = file(filename) try: ab = p.load(f) except EOFError: pass except: print 'load %s error' %filename f.close() sys.exit() f.close()# main loopwhile True: try: action = raw_input('Enter action-->:') except EOFError: continue except: save(ab, filename) if (action == 'add' or action == 'insert'): add(ab) elif (action == 'delete' or action == 'del'): delete(ab) elif (action == 'search' or action == 'lookup'): search(ab) elif (action == 'send'): send(ab) elif (action == 'exit' or action == 'quit'): save(ab, filename) sys.exit() else: printHelp()
- My first Python Program -- Command line Address Book
- [Source Code] My First Python Program
- My first program written in Python
- MY FIRST COREWAR BOOK
- My First RMI Program
- My First Java Program...
- MY FIRST C++ PROGRAM
- my first java program
- My First Akka Program
- my first C++ program
- This is my first program
- My First Game Cheating Program
- My first OPENGL little program
- first python program
- How can I get my public IP address from the command line, if I am behind a router?
- ios开发(十一): command line program
- My first Icon to Tray program
- QuickSort(C#) -- My First C# Program
- zf HTTP请求助手getRequest()
- SIP协议应答码
- hibernate关联映射中的组件映射
- 装饰模式(I/O流)
- HUNAN 10432 棋盘覆盖问题
- My first Python Program -- Command line Address Book
- 第二十篇 黑马程序员-银行业务系统
- wamp:MySql数据库备份还原(mysqldump)
- Windows API参考大全
- JavaScript判断是否为数字,字母,英文
- 软件版本GA,RC,Demo,Build意思
- 如何选择? 请看Windows 8 各版本区别详解
- 过去一周最吸引眼球的10大科技产品或技术
- 心在飞、泪在飘