Python读取终端输出并从脚本中提供输入

2024-03-29 08:00:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个模块中的类,该模块在第一次使用时要求我在终端中输入一些信息

在每个新实例中,终端都会请求一些输入

例如:

instance = Class()
instance.run()
## asks for input in the terminal

我考虑过子流程模块,但没有找到任何关于我的用例的东西,最好的解决方案应该允许我阅读它所要求的内容,并在每个步骤中输入一些数据

提前谢谢


Tags: 模块the实例instancerunin信息终端
2条回答

你的问题在这里得到了很好的回答: Write function result to stdin

我在下面列出了一个选项,但总的来说,这是一个相当混乱的情况,我会寻找替代解决方案。即使是对另一个库进行修补以接受作为变量的输入,也可能会更干净

也就是说,出于您的目的,翻译可能如下所示:

import sys
import StringIO

class Foo(object):
    def run(self):
        self.x = raw_input('Enter x: ')

old_stdin = sys.stdin
instance = Foo()
sys.stdin = StringIO.StringIO('asdlkj')
instance.run()
print
print 'Got: %s' % instance.x

和运行:

Enter x: 
Got: asdlkj

这里有一个来自a fun guide I found on google just now的例子

我建议您搜索一些关于此主题的不同文章,了解在您的特定情况下可能有助于您的不同方法。快乐编码

from __future__ import print_function, unicode_literals
from PyInquirer import prompt
from pprint import pprint
questions = [
    {
        'type': 'input',
        'name': 'first_name',
        'message': 'What\'s your first name',
     }
]
answers = prompt(questions)
pprint(answers)
)

相关问题 更多 >