У меня есть два разных файла 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
Как решить эту проблему, пожалуйста?
2 ответа
Используйте for a, b in zip(A_file, B_file):
для параллельного просмотра файлов.
Учитывая, что оба файла имеют одинаковую длину
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)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.