当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中读取 CSV 文件 [2 种方法]

作者:精品下载站 日期:2024-12-14 05:26:01 浏览:13 分类:玩电脑

在 PowerShell 中读取 CSV 文件 [2 种方法]


[玩转系统] 在 PowerShell 中读取 CSV 文件 [2 种方法]

使用 Import-Csv Cmdlet

要在 PowerShell 中读取 CSV 文件,请使用 Import-Csv cmdlet。

使用 Import-Csv Cmdlet:

$csvFile = "d:\data.csv"
Import-Csv -Path $csvFile

输出 :

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 文件的 cmdlet:

  • 导入-CSV
ConvertFrom-Csv
Export-Csv
ConvertTo-Csv

这些 cmdlet 使我们能够在 PowerShell 中轻松读取、写入和操作 CSV 数据,但 Import-CsvConvertFrom-Csv 主要用于读取指定的 CSV 文件。

PowerShell 中的 Import-Csv cmdlet 读取 CSV 文件的内容并将其转换为数组对象。它假定 CSV 文件的第一行包含列标题,并用逗号分隔每列。

其基本语法是 Import-Csv -Path ,其中 -Path 是强制参数,指定我们要导入的 CSV 文件的路径。例如,我们使用此 cmdlet 来读取 csvFile

使用 ConvertFrom-Csv Cmdlet

我们可以使用 ConvertFrom-Csv cmdlet 在 PowerShell 中读取 CSV 文件。

ConvertFrom-Csv Cmdlet 与管道 (|) 运算符结合使用

要读取 CSV 文件:

  • 使用带有 -Raw 参数的 Get-Content cmdlet 将文件作为单个字符串读取。
  • 使用管道 (|) 运算符将 Get-Content cmdlet 的输出传递到 ConvertFrom-Csv cmdlet。

将 ConvertFrom-Csv Cmdlet 与管道运算符结合使用:

$csvFile = "d:\data.csv"
(Get-Content -Path $csvFile -Raw) | ConvertFrom-Csv

输出 :

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 是一个 PowerShell cmdlet,它从文件或指定的一个或多个项目中读取内容并返回对象中的内容。例如,此 cmdlet 可以从文件(例如日志文件)读取文本,然后对该文本执行操作。默认情况下,它以字符串数组的形式读取文件,但其 -Raw 参数可以将文件作为单个字符串读取。

例如,我们使用带有 -Raw 参数的 cmdlet 将 CSV 文件读取为单个字符串。然后,为了将其转换为 CSV 格式,我们使用了 ConvertFrom-Csv cmdlet。

ConvertFrom-Csv cmdlet 与 Import-Csv 类似,但它将 CSV 数据转换为内存中的对象,而不是从文件中读取。我们使用管道 (|) 运算符将 Get-Content 运算符的输出作为输入传递给 ConvertFrom-Csv cmdlet。

使用带有 -InputObject 参数的 ConvertFrom-Csv Cmdlet

要读取 CSV 文件,请使用 ConvertFrom-Csv cmdlet 的 -InputObject 参数并指定 Get-Content 的输出cmdlet 作为值。

将 ConvertFrom-Csv Cmdlet 与 -InputObject 参数结合使用:

$csvFile = "d:\data.csv"
ConvertFrom-Csv -InputObject (Get-Content -Path $csvFile -Raw)

输出 :

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 中的 ConvertFrom-Csv cmdlet 将 CSV 格式的输入字符串转换为对象。 ConvertFrom-Csv cmdlet 的基本语法是 ConvertFrom-Csv -InputObject

-InputObject 是一个强制参数,它指定我们要转换为对象的输入字符串。此输入字符串应采用 CSV 格式,每列用逗号分隔。

为了创建输入字符串,我们使用了 Get-Content cmdlet 以及我们在使用管道运算符的代码部分中讨论的 -Raw 参数。然后,我们使用该字符串作为 ConvertFrom-Csv cmdlet 的 InputObject 参数的值,并将结果打印在控制台上。

替换 Get-Content Cmdlet

我们可以将 Get-Content cmdlet 替换为其他 cmdlet 和方法,如下所示:

  • cat cmdlet 将文件作为单个字符串读取。
  • [System.IO.File]::ReadAllText() 方法将文件作为参数并将其作为字符串返回。

请注意,这些命令将文件作为字符串读取。要将它们读取为 CSV,我们可以使用我们在上述代码部分中讨论的 ConvertFrom-Csv cmdlet。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯