输入输出



1. 什么是输入输出

信息 -> 程序 > 模块 > 函数 > 函数结果 -> 模块输出 / 文件输出 / 数据库输出 / 网络输出 / 环境变量

2. 接受用户输入的方式

  1. 通过 sys.argv 接受命令行参数
  2. 程序中断 等待用户输入 raw_input
  3. 读取环境变量。比如:开发环境和线上环境的分离 __import__('dev_settings')
  4. 从文件读取 open('filename')
  5. 从网络读取 urllib.urlopen('http://baidu.com')
  6. 从数据库读取 con.query('select * from user_name')

3. 输出内容

  1. 终端print
  2. 写文件
  3. 写网络
  4. 写数据库

4. 格式化输出内容

  1. 字符串格式化
  2. 输出终端格式化 pip install termcolor termcolor docs
  3. 模板的使用,暂且演示一下:

第一种:string自带

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'

Address:$address
Name:$Name
...               

第二种:使用模板引擎,http://jinja.pocoo.org/

5. 读取文件

几种模式详解(未记录, TODO)

6. 写入文件

7. 练习

1. 做一个简单的基于文本文件的学员管理系统,可以实现增删改查,文本文件格式:
     编号   姓名    性别  年龄   所在地    qq号

     增: 运行程序等待用户输入,用户输入"add",让用户输入姓名,性别,年龄,所在地,qq号这些信息。
     查: 运行程序等待用户输入,用户输入"read", 让用户输入学员编号,查到之后输出给用户。
     删:运行程序等待用户输入,用户输入"delete", 让用户输入学员编号,查到之后输入给用户,然后输出是否删除的确认命令,确认后删除。
     改: 运行程序等待用户输入,用户输入"update", 让用户输入学员编号,进而输出学员信息,之后让用户填入新的内容(所有字段)
     提示:可以把文件转换成Python中的结构

2. 写一个程序统计代码行数,可以统计信息包括:代码行数,注释行数(代码尾部的注释也算),空白行数。并以红,黄,蓝三种颜色分别输出。

     使用方法:  python collection.py  .  (指当前文件夹下所有的py文件)
     
3. 熟悉coding.net的使用