【问题标题】:PowerShell: Export csv files after using Group-ObjectPowerShell:使用 Group-Object 后导出 csv 文件
【发布时间】:2020-04-21 00:22:02
【问题描述】:

我刚刚开始学习 PowerQuery,我的目标是根据列值将大型 csv 文件拆分为较小的 csv 文件。我已经看到了适用于小文件的解决方案,但即使我使用 PowerShell 而不是 ISE,拆分一个包含 500K 行的文件仍然需要三分钟。 我尝试使用 Group-object 隐式创建一个哈希表,我可以列出组

Import-csv ./myfile.csv | Group-Object -Property Region | Select-Object Group

但现在我想循环组对象并将它们使用组名作为文件名通过管道传输到 Export-CSV。

【问题讨论】:

  • 在继续之前请花点时间阅读以下帮助主题:How to create a Minimal, Reproducible Example
  • 演示数据在这里eforexcel.com/wp/…,当我列出输出时,网站抱怨代码中的语法错误。
  • 您是否阅读了帮助主题? ;-) 您应该与您的问题一起发布所有代码,以了解您在做什么(格式化为代码),一些(几行)如果需要(也格式化为代码)清理示例数据,以及您的错误消息得到,如果有一些你期望的结果的例子。尝试让愿意帮助您的人尽可能轻松。我们看不到您的屏幕,也无法读懂您的想法。 ;-)

标签: powershell csv export-csv


【解决方案1】:

试试这个:

Import-Csv ./myfile.csv | Group-Object Region | ForEach {

$_.Group | Export-Csv ('./' + $_.Name + '.csv') -NoTypeInformation
}

花了 46 秒从 Richard kl 的网址中拆分出“500.000 条销售记录”文件之一。

【讨论】:

  • 只是补充一点,感谢您的帮助,我现在知道如何引用哈希表中的项目,并且可以查看对象属性的名称,从而更容易制定自己的解决方案。
猜你喜欢
  • 2013-01-06
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2016-04-20
  • 2018-12-08
  • 2019-06-09
相关资源
最近更新 更多