"how to read file and multiply one file value with another file index"



分别读取文本和 JSON 文件并将数据加载到各自的变量中。然后,对它们进行迭代循环来相应地计算力,将结果值保存在列表中,最后保存为 json。

  import json

 acce = ''
   with open('accelration.txt', 'r') as js:
        for `line` in js:
        acce = line.split('  ')
print(acce)
['18,33,56,60,17,35,83,87,42,27,27,21,33,22,44,2']
mas = ''
 with open('mass.json', 'r') as js:
      for line in js:
      mas = line.split('  ')
print(mas)
 ['[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]']
def force(a,m):
    for i in range(force):
    force.append(a*m)
print(force)

第一步是获取 accemas 的有效数字列表。

根据您发布的内容,accel是一个包含逗号分隔值字符串的列表。所以你首先需要使用 accel[0] 访问该字符串,然后获取带有 spli(,) 的值列表并将每个值转换为int

acce = ['18,33,56,60,17,35,83,87,42,27,27,21,33,22,44,2']
accel_list = [int(i) for i in acce[0].split(',')]
print(accel_list)

输出:[18, 33, 56, 60, 17, 35, 83, 87, 42, 27, 27, 21, 33, 22, 44, 2]

接下来,mas是一个列表,其中包含格式化为列表的逗号分隔值字符串。因此,您可以使用ast.literal_eval()将该字符串作为列表进行评估:

import ast
mas = ['[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]']
mass_list = ast.literal_eval(mas[0])
print(mass_list)

输出:[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]

现在您有两个有效的列表(accel_listmass_list (,您可以使用列表推导将它们相乘以获得力:

force = [a*m for a,m in zip(accel_list,mass_list)]
print(force)

输出:[32.4, 108.89999999999999, 313.59999999999997, 360.0, 28.9, 122.5, 688.9000000000001, 756.9, 176.4, 72.9, 7.290000000000001, 44.1, 108.89999999999999, 48.400000000000006, 19.36, 5.4]

如果您希望将结果四舍五入到例如 2 位小数,您也可以在列表理解中执行此操作:

force = [round(a*m,2) for a,m in zip(accel_list,mass_list)]
print(force)

输出:[32.4, 108.9, 313.6, 360.0, 28.9, 122.5, 688.9, 756.9, 176.4, 72.9, 7.29, 44.1, 108.9, 48.4, 19.36, 5.4]

相关内容

最新更新