我有这段代码:
t=int(input())
for i in range(t):
n,k=map(int, raw_input().split())
A=map(int, raw_input().split())
B=map(int, raw_input().split())
A.sort()
B.sort(reverse=True)
flag=True
while(i<len(A)):
if A[i]+B[i]<k:
flag=False
break
i+=1
if flag==True:
print "YES"
else:
print "NO"
我想提供一个文本文件,其中包含以下专门格式化的数据,以便为这样的程序提供输入。我该怎么办? 这是文字:
10
8 91
18 73 55 59 37 13 1 33
81 11 77 49 65 26 29 49
18 94
84 2 50 51 19 58 12 90 81 68 54 73 81 31 79 85 39 2
53 102 40 17 33 92 18 79 66 23 84 25 38 43 27 55 8 19
8 88
66 66 32 75 77 34 23 35
61 17 52 20 48 11 50 5
14 45
11 16 43 5 25 22 19 32 10 26 2 42 16 1
33 1 1 20 26 7 17 39 23 34 10 11 38 20
11 59
15 16 44 58 5 10 16 9 4 20 24
37 45 41 46 8 23 59 57 51 44 59
8 32
28 14 24 25 2 20 1 26
4 3 1 11 25 22 2 4
6 57
1 7 42 26 45 14
37 49 42 26 4 11
4 88
25 60 49 4
65 46 85 34
16 9
2 1 1 4 1 7 3 4 3 7 3 1 3 5 6 7
1 1 1 1 4 1 2 1 7 1 1 1 1 1 1 2
1 70
40
38
为了将包含这些数字的txt文件作为上述程序的输入流,我该怎么办?
答案 0 :(得分:2)
您可以将内容作为stdin流传递,也可以作为参数从命令行传递,然后打开文件并读取它。假设您的程序名为script.py
# this will read from the stdin
import sys
for line in sys.stdin:
print(line)
您可以将其与cat file | python script.py
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('inputfile')
args = parser.parse()
with open(args.inputfile) as handler:
for line in handler:
print(line)
此选项为python script.py file
答案 1 :(得分:2)
您可以将sys.stdin
设置为您想要的任何类似文件的对象。 input
函数将使用存储在那里的任何对象来获取输入。在这里,我使用BytesIO
对象来使用字符串进行输入。
import io
import sys
data = b"""1
8 91
18 73 55 59 37 13 1 33
81 11 77 49 65 26 29 49"""
try:
with io.BytesIO(data) as sys.stdin:
# your code here
i = raw_input() # or input if python 3
print("i = {!r}".format(i))
assert i == "1"
finally:
# restore original standard input
sys.stdin = sys.__stdin__
答案 2 :(得分:1)
以“沙丘”答案为基础,您需要做的是:
with open('file_path.txt','r') as sys.stdin:
t = int(input())