如何在Python中从文本文件中提取用户输入

2024-06-28 22:13:55 发布

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

因此,我有一个文本文件,应该在整个Python脚本中用作用户输入。假设我的文本文件如下所示:

input1
input2
input3
input4

然后我有一个while循环,如下所示:

^{pr2}$

如何循环输入文本文件,将每一行作为一个字符串,并将该字符串用作while循环内部的用户输入?

谢谢


Tags: 字符串用户脚本文本文件whilepr2input1input2
3条回答

你在问这个问题之前应该先看看四周。您只需要使用readline()Python: read all text file lines in loop

您要查找的内容听起来像经典的生成器解决方案(有关详细信息,请阅读pep 255):

def function1():
    print("function1")

def function2():
    print("function2")

def function3():
    print("function3")

def choose_input(the_input):
    return {
        'input1': function1,
        'input2': function2,
        'input3': function3
    }[the_input]


with open("file.txt") as file:
    inputs = (choose_input(i.rstrip("\n")) for i in file.readlines())

[my_input_function_call() for my_input_function_call in inputs]

我建议改用fileinput模块(https://docs.python.org/2/library/fileinput.html),但值得一提的是,您可以将输入通过管道传输到希望从用户读取的程序中,例如:

bash-3.2$ cat prog.py 
#!/usr/bin/env python

while True:
    try:
        x = raw_input()
    except EOFError:
        break
    if x == "a":
        print 'got a'
    elif x == 'b':
        print 'such b'
    else:
        print 'meh %r' % x
bash-3.2$ cat vals.txt 
a
b
c
bash-3.2$ # equivalent to: cat vals.txt | ./prog.py
bash-3.2$ ./prog.py < vals.txt
got a
such b
meh 'c'

相关问题 更多 >