Как да се избегне новата линия?
Здравейте, въпросът ми е относно относно четене на файлове, по-конкретно от последната задача в края на 3-та лекция за променяне на цените в каталог.
Ето кодът ми:
"""
    Change prices for products
    of different kind with 75% or more.
"""
import random
# Dictionary with a mapping of how much we should change
# the prices of different clothing - it will be random between 75% and 80%
CATALOG_PRICES_SAMPLE = 'catalog_sample.csv'
CATALOG_PRICES_FULL = 'catalog_full.csv'
CATALOG_PRICES_FULL_MODIFIED = 'catalog_full_modified.csv'
dictionary_increase_in_prices = {}
index_price = 6
index_clothing_type = 4
with open(CATALOG_PRICES_FULL, 'r') as file_to_read:
    with open(CATALOG_PRICES_FULL_MODIFIED,'w') as file_to_write:
        for line_read in file_to_read:
                line_read = line_read.strip()
                line_read = line_read.split(',')
                line_read[6] = float(line_read[6])
                clothing_type = line_read[index_clothing_type]
                if clothing_type not in dictionary_increase_in_prices:
                    dictionary_increase_in_prices.setdefault(clothing_type,random.uniform(1.75,1.80))
                line_read[6] = line_read[6]*dictionary_increase_in_prices[clothing_type]
                line_read[6] = str(line_read[6])
                line_to_write = (',').join(line_read)
                file_to_write.write(line_to_write + '\n')
                
Въпросът ми е - как мога да избегна да пиша нова линия в края на новия файл, без да зареждам всичко в паметта? Знам, че мога да заредя новия файл в лист и след това да направя лист = лист[:-1] и после пак да го запиша, но има ли по - добър подход от гледна точка на памет и време?
Кодът ми чете csv файл и пише съответно нов csv файл, като увеличава цените от стария файл, взимайки предвид вида на облеклото. Примерно якетата ги увеличава със 78%, обувките със 76.3% и т.н. С колко процента се увеличава се определя на случаен принцип с функцията random. Аз съм направил увеличението за различните обекла да е между 75 и 80%. Както и да е, ако старият файл е 60000 реда, то новият ми написан файл е тези 60000 реда с увеличените цени + 1 празен. Искам да разбера как да разкарам празния ред, така че да не се променя съществено кода ми и да не се зарежда целия файл в паметта и да не се забавя много програмата.
Значи на новия файл, между всеки написан ред имаш и един празен, така ли?