我有一个file.txt,还有100000行,我想用python将其转换为百分比,即将每个值除以最大值并乘以100。
答案 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);