Ubuntu 如何根据file.txt中的最大值分割每一行,并将结果作为file.txt

Ubuntu 如何根据file.txt中的最大值分割每一行,并将结果作为file.txt,ubuntu,python,Ubuntu,Python,我有一个file.txt有100000多行,我想用python将它转换成一个百分比,即将每个值除以一个最大值,再乘以100 假设文件中的每一行都包含一个数字,并且您已经知道最大值(例如300),那么下面的Python代码应该可以工作: average.py: MAX = 300 with open("file.txt", "r") as f: for n in f: print 100 * float(n) / MAX 您可以使用以下命令运行此操作: python av

我有一个file.txt有100000多行,我想用python将它转换成一个百分比,即将每个值除以一个最大值,再乘以100

假设文件中的每一行都包含一个数字,并且您已经知道最大值(例如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>percentrates.txt

(注意:将输出发送到另一个文件是一个好主意,这样您就不会丢失原始数据。以后您可以随时重命名它。)

如果需要使用文件中的最大值,而不是已知值,则需要进行以下操作:读取文件,找到最大值,然后计算平均值

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


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

我不确定您的文件包含哪些内容,但我提出了我的解决方案:

with open(filename) as fp:
    values = list(map(float, iter(fp)))
M = max(values)
[v * 100 / M for v in values]