繁体   English   中英

如何直接从代码向内置 function 中写入一些内容

[英]How to write something into input() built-in function from code directly

当 input() 等待填充时,我需要直接从代码中填充标准输入。 有没有做下一个:

# Here suppose to be some code that will automatically fill input() below
string = input("Input something: ")
# Or here

我听说过 subprocess.Popen,但我不知道如何在我的案例中使用它。 谢谢你。

这段代码是:

import sys
from io import StringIO


class File(StringIO):
    def __init__(self):
        self._origin_out = sys.stdout
        self._origin_in = sys.stdin
        sys.stdout = self
        sys.stdin = self
        self._in_data = ''
        super(File, self).__init__()

    def write(self, data):
        if data == 'My name is:':
            self._in_data = 'Vasja\n'
        else:
            self._origin_out.write(data)

    def readline(self, *args, **kwargs):
        res = self._in_data
        if res:
            self._in_data = ''
            return res
        else:
            return sys.stdin.readline(*args, **kwargs)

    def __del__(self):
        sys.stdout = self._origin_out
        sys.stdin = self._origin_in


global_out_file = File()

a = input('My name is:')
print('Entered name is:', a)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM