Я пытаюсь написать сценарий, который разделит очень большой CSV (1 миллион строк) на 100 csv. Я использую StreamReader вместо импорта, так как файл такой большой. я начал код:Powershell StreamReader, сделать переменную из каждой строки rreadline
$src = "c:\TestCSV.csv"
$reader = New-Object IO.StreamReader($src)
$header = Get-Content -Path $src | select -First 1
while(($line = $reader.ReadLine()) -ne $null){
$data = $line -Split ','
$NiNumber = $data[9]
$Char6 = $NiNumber.Substring(6,1);
$Char7 = $NiNumber.Substring(7,1);
$Group = $Char6 + $Char7
Write-Host "▸▸ Adding Line to Group $Group " -NoNewline -ForegroundColor Yellow
$stream =[System.IO.StreamWriter] "c:\test$Group.csv"
$stream.WriteLine($line)
$stream.Close()
Write-Host -Object '✔' -ForegroundColor green
}
$reader.Close()
Мой CSV имеет 13 столбцов с заголовками, я получаю номер группы из 9-го столбца по югу натягивания. Затем мне нужно вывести все строки в новый CSV с этим именем группы. Это работает для 1 строки, но, похоже, не добавляет никаких строк в CSV. (не уверен, что он просто создает новый CSV и перезаписывает существующий). Может ли кто-нибудь помочь мне закончить это, чтобы он добавил несколько строк в csv, а также, если возможно, добавить заголовки в каждый csv? любая помощь очень ценится.
Рад это услышать, вы также должны опубликовать свое решение. Хотя я не уверен, что здесь есть вопрос. –
HI Jim жаль нового на этом сайте, я добавил комментарий преждевременно, хотя я прогрессировал, чтобы теперь получить каждую строку, помещенную в CSV, она не добавляет несколько строк, а скорее создает новый файл каждый раз, независимо от того, уже существует, поэтому перезаписывает любые существующие файлы. что означает, что все файлы CSV имеют только одну строку. – John
Джон, я думаю, вам нужно сделать свой вопрос яснее, я не уверен, о чем вы просите. Было бы также полезно разместить образец файла csv. –