У меня есть два разных файла A и B:

A= 5 
   2
   3
   4
   6
  78
   ..

B= 3
   4
   2
   1
   8
   7
   ..

Мне нужно рассчитать умножение в каждом файле для двух файлов, я использую этот код:

A_file=open(r'C:\Users\user\Desktop\New_folder\A.txt', 'r')
B_file = open(r'C:\Users\user\Desktop\New_folder\B.txt', 'r')
for a in A_file:
    for line, b in enumerate(B_file):
        #print  b
        print (a,'+',b)
        c= int(a)*int(b)
        print (c)

Результат:

('5\n', '+', '3\n')
15
('5\n', '+', '4\n')
20
('5\n', '+', '2\n')
10
('5\n', '+', '1\n')
5
('5\n', '+', '8\n')
40
('5\n', '+', '7')
35

Но прогнозируемый результат:

('5\n', '+', '3\n')
15
('2\n', '+', '4\n')
8
('3\n', '+', '2\n')
6
('4\n', '+', '1\n')
4
('6\n', '+', '8\n')
48
('78\n', '+', '7')
546

Как решить эту проблему, пожалуйста?

0
Guillaume 24 Апр 2017 в 16:18

2 ответа

Лучший ответ

Используйте for a, b in zip(A_file, B_file): для параллельного просмотра файлов.

1
Stefan Pochmann 24 Апр 2017 в 13:25

Учитывая, что оба файла имеют одинаковую длину

A_file=open(r'C:\Users\user\Desktop\New_folder\A.txt', 'r')
B_file = open(r'C:\Users\user\Desktop\New_folder\B.txt', 'r')

alist=[]
blist=[]
for each in A_file:
    alist+=[int(each)]
for each in B_file:
    blist+=[int(each)]

if len(alist)==len(blist):
    for every in alist:
        print (alist[every],'+',blist[every])
        c= alist[every]+blist[every]
        print (c)
0
nishant kumar 24 Апр 2017 в 13:28