当前位置:  开发笔记 > 编程语言 > 正文

使用python输入重定向

如何解决《使用python输入重定向》经验,为你挑选了1个好方法。

我有以下程序来测试Python中的输入重定向.

a = int(raw_input("Enter a number: "))
b = raw_input("Enter a string: ")
print "number entered = ", a
print "string entered = ", b

如果我在没有重定向的情况下运行该程序,输入和输出如下所示:

Enter a number: 100
Enter a string: sample
number entered =  100
string entered =  sample

现在,为了测试输入重定向,我有一个名为a.txt的文件包含:

100
sample

但是,当我使用从a.txt重定向的输入(如下所示)运行时,我的输入和输出会出现乱码.

python doubt02.py < a.txt
Enter a number: Enter a string: number entered =  100
string entered =  sample

请建议我是否有更好的选择(使用输入重定向),如下所示:

Enter a number: 100
Enter a string: sample
number entered =  100
string entered =  sample

Blender.. 6

你基本上想要stdin进入stdout:

import sys

class Tee(object):
    def __init__(self, input_handle, output_handle):
        self.input = input_handle
        self.output = output_handle

    def readline(self):
        result = self.input.readline()
        self.output.write(result)

        return result

if __name__ == '__main__':
    if not sys.stdin.isatty():
        sys.stdin = Tee(input_handle=sys.stdin, output_handle=sys.stdout)

    a = raw_input('Type something: ')
    b = raw_input('Type something else: ')

    print 'You typed', repr(a), 'and', repr(b)

Tee类只实现什么raw_input用,所以它不能保证对其他用途的工作sys.stdin.



1> Blender..:

你基本上想要stdin进入stdout:

import sys

class Tee(object):
    def __init__(self, input_handle, output_handle):
        self.input = input_handle
        self.output = output_handle

    def readline(self):
        result = self.input.readline()
        self.output.write(result)

        return result

if __name__ == '__main__':
    if not sys.stdin.isatty():
        sys.stdin = Tee(input_handle=sys.stdin, output_handle=sys.stdout)

    a = raw_input('Type something: ')
    b = raw_input('Type something else: ')

    print 'You typed', repr(a), 'and', repr(b)

Tee类只实现什么raw_input用,所以它不能保证对其他用途的工作sys.stdin.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有