python作为一种脚本语言,首先完成的工作是编写脚本。在平时编写脚本的过程中,我们注意到,时常需要与外界交互完成,比如人工手动输入(如程序参数)、导入外部文件、定向输入等。所以,这需要脚本与外界有较好的输入输出交互。 python应对此类问题的模块有sys,StingIO等。 1. 手动输入 这里用到了sys模块的argv属性,举例: ========================= #! /usr/bin/env python # python script argvtest.py import sys usrargv = sys.argv print usrargv ========================= 运行脚本 $ chmod +x argvtest.py $ ./argvtest.py -a -b -c ['./argvtest.py', '-a', '-b', '-c'] 可以看到,sys.argv将返回一个列表,包括脚本文件名和参数。这时,可以提取列表中的有效信息,进行不同的功能实现。 raw_input( )函数同样提供了一个简单的输入接口,以下是一个简单的脚本rawinputtest.py: =============================== while True: a = raw_input('Enter your words: ') if a == 'stop': break print a ================================ 这个脚本可以一直输入,直到遇见'stop'。所以,可以输入一个列表,之后获取列表中的各个元素作为程序的执行参数。 2. 输入文件 python输入文件当然可以采用最直接的open( )函数读如文件,这里提供另一个方法,从系统shell导入文件。使用sys模块的stdin属性。举例,先建立一个文本文件sdintest: ============================ 'abc' ['hello', 'python'] {'python': 'script', 'R': 'function'} ============================ 建立输入脚本inoutput.py: ============================ import sys a = sys.stdin.readline() b = sys.stdin.readline() print a, b ============================= 执行脚本 $ python inoutput.py < sdintest 'abc' ['hello', 'python'] 注意:这种脚本建立方法,不能将脚本建立为可执行文件(为什么?)。 3. 定向输出 两种方法:1. 可以使用带有write方法的对象,之后配合print。比如将sys.stdput作为一个打开的可写文件,然后使用print依次输入。同样,这种方法可以被语句print >> myfile, obj1, obj2代替。2. 当然,也可以使用shell的">"定向输入文件,比如: $ python inoutput.py < sdintest > sdouttest 将得到文件定向输入sdouttest文件。 |
|
来自: 昵称QAb6ICvc > 《python》