Python добавить весь столбец в CSV-файл, не читая содержимое файла - PullRequest
1 голос
/ 29 мая 2019

Мне нужно добавить столбцы в CSV-файл, используя Python.Единственный способ сделать это - прочитать весь файл, отредактировать каждую строку, добавив 1 элемент, а затем снова записать в файл.Однако я действительно не хочу делать это таким образом из-за размера файла (более 32000 строк, кажется, много чтения и записи каждый раз, когда я хочу добавить столбец).Даже используя модуль CSV, я думаю, что принцип будет таким же, прочитайте все, отредактируйте и напишите снова.

, чтобы быть понятным, ниже приведен пример файла CSV.

1,2
1,2
1,2
1,2

я хочучтобы добавить третий столбец, чтобы файл стал:

1,2,3
1,2,3
1,2,3
1,2,3

Если бы я хотел добавить всю строку (или строку), я мог бы использовать open(csvfile, 'a') и «добавить» последнюю строку в файл.Есть ли аналогичная опция для добавления столбца?

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Для оригинального CSV-файла, скажите foo.csv

1,2 
1,2
1,2
1,2

Просто создайте другой файл, содержащий столбец для добавления, скажем bar.csv

3
3
3
3

Затем команду Unix paste можно вызвать из Python, используя os.system как

import os
os.system("paste foo.csv  bar.csv -d ',' > output.csv")

Это дает результат output.csv как

1,2,3
1,2,3
1,2,3
1,2,3
0 голосов
/ 29 мая 2019

к сожалению это невозможно. Файлы текстовых файлов представляют собой последовательности, и если вы хотите добавить что-то промежуточное, вам нужно сдвинуть весь оставшийся контент (и, следовательно, вы должны прочитать и записать его).

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