读取两个文本文件并计算值的问题

时间:2018-02-14 21:22:40

标签: python python-2.7

我有两个带有数字的文本文件,我想做一些非常简单的计算(现在)。我虽然会选择Python。我有两个文件文件的两个文件阅读器:

with open('one.txt', 'r') as one:
    one_txt = one.readline()
print(one_txt)

with open('two.txt', 'r') as two:
    two_txt = two.readline()
print(two_txt)

现在为了乐趣(对我来说很难)部分。我想循环遍历第二个文本文件中的所有数字,然后用第一个文本文件中的第二个数字减去它。

我已经完成了这项工作(扩展了以上编码):

with open('two.txt') as two_txt:
   for line in two_txt:
       print line;

我现在不知道如何继续,因为我认为第二个文本文件需要转换为字符串才能进行一些解析,以便得到我想要的数字。文本文件(two.txt)如下所示:

Start,End
2432009028,2432009184,
2432065385,2432066027,
2432115011,2432115211,
2432165329,2432165433,
2432216134,2432216289,
2432266528,2432266667,

我想通过这个循环,忽略Start,End(第一行)然后一旦它循环只选择每个逗号前的第一个值,结果将是:

2432009028
2432065385
2432115011
2432165329
2432216134
2432266528

然后我将使用one.txt中的第二个值减去(仅包含数字而不包含任何字符串)并打印结果。

有许多方法可以进行字符串操作,我感到迷茫,例如,我不知道读取内存中的所有内容的方法是否良好。

非常感谢有关如何解决此问题的任何示例(我对不同的解决方案持开放态度)!

编辑:忘记指出,one.txt包含没有任何逗号的值,如下所示:

102582
205335
350365
133565

2 个答案:

答案 0 :(得分:1)

像这样的东西

with open('one.txt', 'r') as one, open('two.txt', 'r') as two:
    next(two) # skip first line in two.txt
    for line_one, line_two in zip(one, two):
        one_a = int(split(line_one, ",")[0])
        two_b = int(split(line_two, " ")[1])
        print(one_a - two_b)

答案 1 :(得分:0)

试试这个:

onearray = []
file = open("one.txt", "r")
for line in file:
    onearray.append(int(line.replace("\n", "")))
file.close()

twoarray = []
file = open("two.txt", "r")
for line in file:
    if line != "Start,End\n":
        twoarray.append(int(line.split(",")[0]))
file.close()

for i in range(0, len(onearray)):
    print(twoarray[i] - onearray[i])

它应该做的工作!