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  Yes

PowerShell, CSV dosyalarıyla çalışmamıza olanak tanıyan çeşitli cmdlet'ler sağlar:

  • Csv'yi İçe Aktar
  • ConvertFrom-Csv
    Export-Csv
    ConvertTo-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-Content cmdlet'ini -Raw parametresiyle birlikte kullanın.
  • Get-Content cmdlet'inin çıktısını ConvertFrom-Csv cmdlet'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  Yes

Get-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  Yes

PowerShell'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:

  • cat cmdlet'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.

İlgili makaleler