分享

python脚本输入输出交互控制

 昵称QAb6ICvc 2022-03-16
标签: 

python

 

脚本

 

输入输出

 

shell

 

linux

 

sys

分类: PPR

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文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多