Переименование заголовков csv в пандах без записи всего файла для очень большого csv [duplicate]

Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result является undefined в вашем примере кода.

5
задан barkl3y 30 April 2013 в 19:41
поделиться

3 ответа

Заголовки - это еще одна строка данных CSV. Просто напишите их как новую строку для вывода, за которой следуют остальные данные из входного файла.

import csv
import os

inputFileName = "temp.csv"
outputFileName = os.path.splitext(inputFileName)[0] + "_modified.csv"

with open(inputFileName, 'rb') as inFile, open(outputFileName, 'wb') as outfile:
    r = csv.reader(inFile)
    w = csv.writer(outfile)

    next(r, None)  # skip the first row from the reader, the old header
    # write new header
    w.writerow(['Item Number', 'Item Description', 'List Price', 'QTY Available'])

    # copy the rest
    for row in r:
        w.writerow(row)

Для Python 3 используйте:

with open(inputFileName, newline='') as inFile, open(outputFileName, 'w', newline='') as outfile:

, и вы может потребоваться указать кодировку для ваших данных.

13
ответ дан Martijn Pieters 27 August 2018 в 06:49
поделиться

Другое решение - использовать модуль fileinput для обновления файла:

import fileinput
for line in fileinput.input('temp', inplace=True):
    if fileinput.isfirstline():
        print 'Item Number,Item Description,List Price,QTY Available'
    else:
        print line,
2
ответ дан Hai Vu 27 August 2018 в 06:49
поделиться

Вы можете использовать fileinput для этого:

import fileinput
import sys
import os

inputFileName = "temp.csv"
outputFileName = os.path.splitext(inputFileName)[0] + "_modified.csv"

with open(outputFileName, "w") as outfile:
    for line in fileinput.input(
        [inputFileName],
        inplace=False):
        if fileinput.isfirstline():
            outfile.write('Item Number,Item Description,List Price,QTY Available\n')
        else:
            outfile.write(line)
0
ответ дан unutbu 27 August 2018 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: