Python:从文件读取输入?
我有一个如下格式的文本文件:Python:从文件读取输入?,python,python-2.7,file-io,Python,Python 2.7,File Io,我有一个如下格式的文本文件: 2 1 3 2 4 我已经编写了一个python程序,它要求输入的数量并打印出值和 n = int(raw_input()) for _ in range(n): a,b = map(int,raw_input().split()) print a+b 但是 我应该如何从文件中获取输入,以便第一行是测试用例的数量,下一行是输入 是否将输出打印到文件 1+2。Shell重定向 $ python foo.py < input.txt >
2
1 3
2 4
我已经编写了一个python程序,它要求输入的数量并打印出值和
n = int(raw_input())
for _ in range(n):
a,b = map(int,raw_input().split())
print a+b
但是
1+2。Shell重定向
$ python foo.py < input.txt > output.txt
$python foo.pyoutput.txt
您可以使用该模块使您的脚本支持从文件读取输入和从stdin读取
import fileinput
num_inputs = None
for line in fileinput.input():
if num_inputs is None:
num_inputs = int(line)
else:
a,b = map(int, line.split())
print a+b
这样,如果您将文件名作为参数传递给脚本,它将从中读取,否则将从stdin中读取
import fileinput
num_inputs = None
for line in fileinput.input():
if num_inputs is None:
num_inputs = int(line)
else:
a,b = map(int, line.split())
print a+b
请注意,在这个代码段中,我只是读取了文件中第一行之后的所有输入,并没有真正使用num\u inputs
变量,但您可以轻松地更改它,以强制执行实际读取的预期输入数
至于写入文件,这是一个基本的python问题,已经得到了回答。假设您的输入来自文件,
inp.txt
,例如:
$ cat inp.txt
2
1 3
2 4
您可以使用下面的代码,该代码基本上逐行读取输入文件,并计算值并存储它们:
with open("inp.txt", "r") as inp, open("out.txt", "w") as out:
no_of_cases = int(inp.readline())
for line in inp:
a,b = map(int,line.split())
out.write("%s\n" % (a + b))
请注意,no_of_cases
未在上述代码中使用,因为在本例中它是多余的
这将为您生成输出文件out.txt
,其中包含以下数据:
$ cat out.txt
4
6