非常に大きなCSV(100万行)を100個のCSVに分割するスクリプトを作成しようとしています。ファイルが非常に大きいので、私はインポートよりもむしろStreamReaderを使用しています。 が、私はコードを開始しました:Powershell StreamReader、各レイドラインから変数を作成
$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に複数の行を追加し、可能であれば各csvにヘッダーを追加しますか?どのような助けも非常に感謝しています。
喜んで解決策を投稿する必要があります。私はここに実際に質問があるか分からないが。 –
HI Jimはこのサイトを初めてお見せしましたが、コメントを早めに追加しましたが、CSVに各行を追加するようになりましたが、複数の行を追加するのではなく、毎回新しいファイルを作成するようです既存のファイルは上書きされます。つまり、すべてのCSVファイルには1つの行しかありません。 – John
ジョン、私はあなたがあなたの質問をより明確にする必要があると思う、私はあなたが求めているか分からない。また、csvファイルのサンプルを投稿すると便利です。 –