Как я могу прочитать файл CSV с двумя столбцами, добавить строки к нему, а затем записать его в новый файл CSV - PullRequest
0 голосов
/ 04 марта 2020

У меня есть файл CSV, который, когда я импортирую его с помощью Import-Csv, выглядит примерно так (например):

Animal  Color
-----   -----
Cat     Black
Cat     Calico
Dog     Brown

Я пытаюсь добавить в него строки, например: " Белый кот "- но я не могу понять, как. «Import-Csv» по умолчанию представляет собой массив, который выглядит многомерным, но он ведет себя как обычный массив, поэтому, если я, например, выполняю «$ csv + = 'cat', 'white'", он помещает оба элемента в столбец 'Animal'.

Я попытался преобразовать массив в таблицу ha sh, но это не сработает, потому что ключи таблицы ha sh должны быть уникальными, и у меня есть "Cat" там дважды (и в любом случае мне понадобится добавить еще строки «Cat»).

Затем я попытался сделать это в виде таблицы ha sh с уникальными ключами и массивами в качестве значений, так что я в итоге получился с чем-то вот так:

Name   Value                                                                                                                                       
----   -----                                                                                                                                       
Cats   {Black, Calico}                                                                                                                
Dogs   {Brown}

Хорошо, такого рода работы, так как теперь я могу правильно добавлять значения в эти массивы, создавать больше пар ключ / значение и т. д. c. Но теперь я застрял, пытаясь понять, как экспортировать это обратно в CSV с двумя столбцами.

Так что теперь я в тупике! Есть ли более простой способ сделать это? Если нет, можете ли вы помочь мне понять, как правильно экспортировать таблицу второго типа ha sh в простой CSV с двумя столбцами?

1 Ответ

1 голос
/ 04 марта 2020

Когда вы читаете в файле как csv, каждая строка является объектом. Чтобы добавить другой объект, вы должны сначала создать его, а затем добавить к существующему импорту CSV.

$csv = import-csv file.csv
$csv += New-Object PsObject -Property @{ Animal= 'Cat' ; Color = 'White' }
...

# Add more objects and once you are done updating the csv, save the updated data
$csv | Export-Csv C:\temp\newFile.csv -NoTypeInformation

-NoTypeInformation используется для пропуска информации о типе, сохраненной в файле CSV.

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