I have two lists in seperate text files and I need to divide each value by the corresponding value in the other list. The following is a smaal bit of the data from both files:
738500.0 683000.0 647000.0 623500.0 607500.0 547000 644000 702000 735000 755000 765000
I have opened both lists like this:
average = open('average2mm.txt','r') average_content = average.read() average.close() difference = open('difference2mm.txt','r') difference_content = difference.read() difference.close()
I presume I have to use the proper loop to divide both lists but I haven’t managed to get it done yet.
Advertisement
Answer
A readable, clean and safe way of doing this would be:
with open('average2mm.txt','r') as average, open('difference2mm.txt','r') as difference: for avg, diff in zip(average, difference): avg, diff = avg.strip(), diff.strip() if avg and diff: ratio = float(avg) / float(diff) print(ratio)
If you want to store it in a list:
result = [] with open('average2mm.txt','r') as average, open('difference2mm.txt','r') as difference: for avg, diff in zip(average, difference): avg, diff = avg.strip(), diff.strip() if avg and diff: ratio = float(avg) / float(diff) result.append(ratio)
If you want to write to another file, you can either iterate over result
list and write to file, or:
with open('average2mm.txt','r') as average, open('difference2mm.txt','r') as difference, open('ratio.txt', 'w') as ratiofile: for avg, diff in zip(average, difference): avg, diff = avg.strip(), diff.strip() if avg and diff: ratio = float(avg) / float(diff) print(ratio, file=ratiofile) # Or, # ratiofile.write(f'{ratio}n')