如何将每一行除以file.txt中的最大值并将结果作为file.txt

时间:2019-04-28 14:04:17

标签: ubuntu python

我有一个file.txt,还有100000行,我想用python将其转换为百分比,即将每个值除以最大值并乘以100。

2 个答案:

答案 0 :(得分:2)

假设文件中的每一行都包含一个数字,并且您已经知道最大值(例如300),那么以下Python代码应该可以工作:

average.py:

MAX = 300
with open("file.txt", "r") as f:
    for n in f:
        print 100 * float(n) / MAX

您可以使用以下命令运行它:

python average.py > percentages.txt

(注意:将输出发送到其他文件是个好主意,因此您不会丢失原始数据。以后始终可以重命名。)

如果需要使用文件中的最大值而不是已知值,则需要读取文件,找到最大值,然后计算平均值。

编辑:刚刚看到了Python标签,所以重写了我的答案。这是我最初的建议,使用awk

awk 'BEGIN {MAX=300} {print (100 * $1)/MAX}' file.txt > percentages.txt

答案 1 :(得分:1)

我不确定您的文件包含什么,但是我提出了解决方案:

    var total = 0;
    var tot_cal = 0;
    var tot_carbo = 0;
    var tot_protein = 0;
    var tot_fat     = 0;
    var elements = document.getElementsByClassName('chk');
    for (var i=0; i<elements.length; i++) {
        $checkBox = $(elements[i]);
        if ($checkBox.is(':checked')) {
            var id = $checkBox.attr("id");
            var l = document.getElementById("listid" + id);
            var qty = l[l.selectedIndex].value; //$list.value;
            var price = $('#'+id).attr("data-price");
            total += (parseInt(qty) * parseInt(price));

            // you can use the below values to check the totals are wokring

                      console.log('qty '+qty);
            console.log('price ' + price);
            console.log('total',total);


                      // Set Calories       
            var cal  = $('#'+id).attr("data-cal");
                      tot_cal += parseInt(cal);

                     // console.log ('cal' + cal);
                     // console.log ('tot_cal' + tot_cal);

            var carbo = $('#'+id).attr("data-carbo");
                      tot_carbo +=parseInt(carbo);


            var fat = $('#'+id).attr("data-fat");
                      tot_fat +=parseInt(fat);
            apex.item( "P21_FAT" ).setValue(tot_fat);                   


            var protein = $('#'+id).attr("data-protein");
                      tot_protein += parseInt(protein);


            }

        }
 apex.item( "P21_TOTAL" ).setValue(total);
 apex.item( "P21_CALORIES" ).setValue(tot_cal);
 apex.item( "P21_CARBOHYDRATE" ).setValue(tot_carbo);
 apex.item( "P21_FAT" ).setValue(tot_fat);  
 apex.item( "P21_PROTEIN" ).setValue(tot_protein);