PowerShell'de CSV Dosyasını Okuyun [2 Yol]
Import-Csv Cmdlet'ini kullanma
PowerShell'de bir CSV dosyasını okumak için Import-Csv cmdlet'ini kullanın.
Import-Csv Cmdlet'ini kullanın:
$csvFile = "d:\data.csv"
Import-Csv -Path $csvFileÇIKTI:
Country Age Salary Purchased
------- --- ------ ---------
France 44 72000 No
Spain 27 48000 Yes
Germany 30 54000 No
Spain 38 61000 No
Germany 40 Yes
France 35 58000 Yes
Spain 52000 No
France 48 79000 Yes
Germany 50 83000 No
France 37 67000 YesPowerShell, CSV dosyalarıyla çalışmamıza olanak tanıyan çeşitli cmdlet'ler sağlar:
Csv'yi İçe Aktar
ConvertFrom-CsvExport-CsvConvertTo-Csv
Bu cmdlet'ler PowerShell'de CSV verilerini kolayca okumamıza, yazmamıza ve işlememize olanak tanır, ancak Import-Csv ve ConvertFrom-Csv öncelikli olarak belirtilen CSV dosyalarını okumak için kullanılır.
PowerShell'deki Import-Csv cmdlet'i bir CSV dosyasının içeriğini okur ve onu bir dizi nesnesine dönüştürür. CSV dosyasının ilk satırının sütun başlıklarını içerdiğini ve her sütunu virgülle ayırdığını varsayar.
Temel sözdizimi Import-Csv -Path şeklindedir; burada -Path, içe aktarmak istediğimiz CSV dosyasının yolunu belirten zorunlu bir parametredir. Örneğin, bu cmdlet'i csvFile dosyasını okumak için kullandık.
ConvertFrom-Csv Cmdlet'ini kullanma
ConvertFrom-Csv cmdlet'ini kullanarak PowerShell'de bir CSV dosyasını okuyabiliriz.
ConvertFrom-Csv Cmdlet'ini Pipe (|) Operatörüyle birlikte kullanın
CSV dosyasını okumak için:
- Dosyayı tek bir dize olarak okumak için
Get-Contentcmdlet'ini-Rawparametresiyle birlikte kullanın. Get-Contentcmdlet'inin çıktısınıConvertFrom-Csvcmdlet'ine geçirmek için dikey yön (|) operatörünü kullanın.
ConvertFrom-Csv Cmdlet'ini Boru Operatörü ile kullanın:
$csvFile = "d:\data.csv"
(Get-Content -Path $csvFile -Raw) | ConvertFrom-CsvÇIKTI:
Country Age Salary Purchased
------- --- ------ ---------
France 44 72000 No
Spain 27 48000 Yes
Germany 30 54000 No
Spain 38 61000 No
Germany 40 Yes
France 35 58000 Yes
Spain 52000 No
France 48 79000 Yes
Germany 50 83000 No
France 37 67000 YesGet-Content, bir dosyadan veya belirtilen öğeden veya öğelerden içerik okuyan ve içeriği bir nesneye döndüren bir PowerShell cmdlet'idir. Örneğin, bu cmdlet, günlük dosyası gibi bir dosyadaki metni okuyabilir ve ardından bu metin üzerinde işlemler gerçekleştirebilir. Varsayılan olarak dosyayı bir dize dizisi olarak okur, ancak -Raw parametresi dosyayı tek bir dize olarak okuyabilir.
Örneğin CSV dosyasını tek string olarak okumak için cmdlet'i -Raw parametresiyle kullandık. Daha sonra bunu CSV formatına dönüştürmek için ConvertFrom-Csv cmdlet'ini kullandık.
ConvertFrom-Csv cmdlet'i Import-Csv'ye benzer, ancak CSV verilerini bir dosyadan okumak yerine bellekteki bir nesneye dönüştürür. Get-Content operatörünün çıktısını, pipe (|) operatörünü kullanarak ConvertFrom-Csv cmdlet'ine giriş olarak aktardık.
ConvertFrom-Csv Cmdlet'ini -InputObject Parametresiyle kullanın
Bir CSV dosyasını okumak için ConvertFrom-Csv cmdlet'inin -InputObject parametresini kullanın ve Get-Content çıktısını belirtin değer olarak cmdlet'i kullanın.
ConvertFrom-Csv Cmdlet'ini -InputObject Parametresiyle kullanın:
$csvFile = "d:\data.csv"
ConvertFrom-Csv -InputObject (Get-Content -Path $csvFile -Raw)ÇIKTI:
Country Age Salary Purchased
------- --- ------ ---------
France 44 72000 No
Spain 27 48000 Yes
Germany 30 54000 No
Spain 38 61000 No
Germany 40 Yes
France 35 58000 Yes
Spain 52000 No
France 48 79000 Yes
Germany 50 83000 No
France 37 67000 YesPowerShell'deki ConvertFrom-Csv cmdlet'i, giriş dizesini CSV biçiminde bir nesneye dönüştürür. ConvertFrom-Csv cmdlet'inin temel sözdizimi ConvertFrom-Csv -InputObject şeklindedir.
-InputObject, bir nesneye dönüştürmek istediğimiz giriş dizesini belirten zorunlu bir parametredir. Bu giriş dizesi, her sütun virgülle ayrılmış olacak şekilde CSV biçiminde olmalıdır.
Giriş stringini oluşturmak için pipe operatörünün kullanımına ilişkin kod bölümünde anlattığımız -Raw parametresi ile Get-Content cmdlet'ini kullandık. Daha sonra bu string'i ConvertFrom-Csv cmdlet'inin InputObject parametresinin değeri olarak kullandık ve sonucu konsola yazdırdık.
Get-Content Cmdlet'ini değiştirin
Get-Content cmdlet'ini diğer cmdlet'ler ve yöntemlerle aşağıdaki gibi değiştirebiliriz:
catcmdlet'i dosyayı tek bir dize olarak okur.- [System.IO.File]::ReadAllText() yöntemi dosyayı argüman olarak alır ve onu bir dize olarak döndürür.
Bu komutların dosyayı bir dize olarak okuduğunu unutmayın. Bunları CSV olarak okumak için yukarıda bahsettiğimiz kod bölümlerinde anlattığımız ConvertFrom-Csv cmdlet'ini kullanabiliriz.
