如何使用用户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示例程序包装为另一个程序(也可能是python或OS脚本),该程序调用第一个将文件作为用户输入传递的程序。但我怎么能这样做呢?
答案 0 :(得分:3)
通常这样的挑战会通过stdin管道输入,并期望通过stdout响应。
为此,请从命令行运行命令,如此;
python program.py < input.txt
如果要将脚本的输出保存到文件中,可以将其重定向到一个文件。
python program.py < input.txt > output.txt
答案 1 :(得分:2)
此作业的常用标准lib工具是fileinput
模块:
import fileinput
for line in fileinput.input():
print(f'working with line {line}')
然后从shell中选择以下内容(它们都有效):
$ python3 my_script.py my_file.txt
$ python3 my_script.py < my_file.txt
$ cat my_file.txt | python3 my_script.py