这是我的python文件: –
TestCases-2
Input-5
Output-1,1,2,3,5
Input-7
Ouput-1,1,2,3,5,8,13
我想要的是: –
>变量test_no = 2(测试用例数)
>列表testCaseInput = [5,7]
>列表testCaseOutput = [[1,1,2,3,5],[1,1,2,3,5,8,13]]
我试过这样做:
testInput = testCase.readline(-10)
for i in range(0,int(testInput)):
testCaseInput = testCase.readline(-6)
testCaseOutput = testCase.readline(-7)
下一步是在(‘,’)的基础上去掉数字,然后将它们放在一个列表中.
奇怪的是,readline(-6)没有给出期望的结果.
有没有更好的方法来做到这一点,显然我错过了.
我不介意在这里使用序列化,但我想让某人编写一个文本文件非常简单,就像我展示的那样,然后从中获取数据.怎么做?
解决方法:
readline方法的负参数指定要读取的字节数.我不认为这是你想要做的.
相反,使用readlines()将所有内容同时拉入列表更简单:
with open('data.txt') as f:
full_lines = f.readlines()
# parse full lines to get the text to right of "-"
lines = [line.partition('-')[2].rstrip() for line in full_lines]
numcases = int(lines[0])
for i in range(1, len(lines), 2):
caseinput = lines[i]
caseoutput = lines[i+1]
...
这里的想法是分离关注点(数据的来源,“ – ”的解析,以及如何处理案例的业务逻辑).这比在每一步都有readline()和冗余解析逻辑更好.