Замена строки в CSV-файле с помощью Python 3 - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть вопрос, варианты которого уже были заданы, но я не могу найти ответ среди всех предыдущих сообщений на мой конкретный вопрос.Поэтому я надеюсь, что кто-то может мне помочь ...

У меня есть CSV-файл как таковой (в этом примере всего 18 строк и 4 столбца, причем первые 2 строки содержат заголовки).

"Employees.csv" 17 ID Имя Значение Расположение 25-2002 Джеймс 1.2919 Финансы 25-2017 Мэтью 2.359 Юридический 30-3444 Роб 3.1937 Операции 55-8988 Фред 3.1815 Исследования 26-1000 Лиза 4.3332 Исследования 56-0909 Джон 3.3533Legal 45-8122 Anna 3.8887 Финансы 10-1000 Rachel 4.1448 Обслуживание 30-9000 Frank 3.7821 Обслуживание 25-3000 Angela 5.5854 Обслуживание 45-4321 Christopher 9.1598 Legal 44-9821 Maddie 8.5823 Обслуживание 20-4000 Ruth 7.47 Операции 50-3233 Vera 5.5092 Операции 65-2045 Сидней 3.4542 Исполнительный 45-8720 Владимир 0.2159 Финансы

Я бы хотел округлить значения в 3-м столбце до 2 десятичных знаков, т.е. округлить (значение, 2).В общем, я хочу открыть файл, прочитать столбец № 3 (минус первые 2 строки), округлить каждое значение, записать их обратно и сохранить файл.Прочитав другие подобные посты, я теперь понял, что лучше всегда создавать временный файл, чтобы выполнять эту работу, а не пытаться изменить один и тот же файл сразу.Итак, у меня есть следующий код:

import csv, os
val = []

with open('path/Employees.csv', 'r') as rf, open('path/tmpf.csv, 'w') as tmpf:
    reader = csv.reader(rf)
    writer = csv.writer(tmpf)
    for _ in range(2): #skip first 2 rows
        next(reader)
    for line in reader:
        val.append(float(line[2]))  # read 3 column into list 'val'

#    [... this is where i got stuck!  
#     ... how do I round each value of val, and
#     ... write everything back to the tmpf file ?]

os.remove('path/Employees.csv')
os.rename('path/tmpf', 'path/Employees.csv')

Спасибо!

1 Ответ

0 голосов
/ 16 февраля 2019

Вы можете

rounded_val = [ round (v,2) for v in val ]

, чтобы создать список округленных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...