Python 如何读取文件作为默认用户输入?

Python 如何读取文件作为默认用户输入?,python,python-3.x,io,user-input,Python,Python 3.x,Io,User Input,如何使用userinput()函数在python 3.6.x中读取整个文件?就像算法挑战网站一样。例如: 我有一个包含以下内容的文件: line 1 line 2 line 3 end 我的程序将执行以下操作: x = input() while x != 'end': print("I am at", x) x = input() 然后,我会将其作为输出: I am at line 1 I am at line 2 I am at line 3 我想我需要用另一

如何使用user
input()
函数在python 3.6.x中读取整个文件?就像算法挑战网站一样。例如:

  • 我有一个包含以下内容的文件:

    line 1
    line 2
    line 3
    end
    
  • 我的程序将执行以下操作:

    x = input()
    while x != 'end':
        print("I am at", x)
        x = input()
    
  • 然后,我会将其作为输出:

    I am at line 1
    I am at line 2
    I am at line 3
    

我想我需要用另一个程序(也可能是python或OS脚本)包装我的python示例程序,该程序调用第一个作为用户输入传递文件的程序。但是我该怎么做呢?

通常这样的挑战会通过stdin传递输入,并期望通过stdout得到响应

要做到这一点,请从命令行运行命令,如下所示

python program.py < input.txt
python program.py
如果要将脚本的输出保存到文件中,可以将其重定向到文件中

python program.py < input.txt > output.txt
python program.pyoutput.txt

此作业常用的标准库工具是模块:

然后从shell中选择以下选项(它们都有效):

$python3 my\u script.py my\u file.txt
$python3 my\u script.py
谢谢,@Shadow!我希望我能把你和@wim的答案写得正确。但我做不到,他跑得更快。哈哈哈。。。我最好的!从技术上讲,我快了3分钟(鼠标悬停在“1小时前回答”上,以查看时间戳:P,但我不介意任何一种方式。哎呀!你说得对。为了公平起见,我已将你的答案设置为正确。抱歉,各位。
import fileinput

for line in fileinput.input():
    print(f'working with line {line}')
$ python3 my_script.py my_file.txt
$ python3 my_script.py < my_file.txt
$ cat my_file.txt | python3 my_script.py