什么是从Python文件中读取内容的更好方法?

这是我的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()和冗余解析逻辑更好.

上一篇:在Eclipse中粘贴多行Java字符串


下一篇:如何使用内联变量创建多行Python字符串?