как разделить каждую строку на максимальное значение в file.txt и получить результаты в виде file.txt - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть файл file.txt, содержащий более 100000 строк. Я хочу преобразовать его в процент с помощью python, то есть разделить каждое значение на максимальное значение и умножить его на 100.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Если предположить, что каждая строка в файле содержит число, и вы уже знаете максимальное значение (например, 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 голос
/ 28 апреля 2019

Я не уверен, что содержит ваш файл, но я предлагаю свое решение:

with open(filename) as fp:
    values = list(map(float, iter(fp)))
M = max(values)
[v * 100 / M for v in values]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...