【发布时间】:2018-12-18 08:05:50
【问题描述】:
我有一个非常标准的 CSV 文件,看起来像这样:
heading1,heading2,heading3
aaaaaaaaa,bb,ccccccc
d,eeeeeeee,ff
gggggggg,hh,iiiiiiiiiii
此文件是使用 import-csv 导入到对象中的。我现在想将该对象导出到一个具有固定记录长度且没有分隔符和表头的文件。如果导入的值对于固定文件来说太长,则应将其截断。如果导入的值太短,值应该左对齐并用空格填充。
假设宽度:
heading1 is 5
heading2 is 2
heading3 is 10
基本上输出应该是这样的:
aaaaabbccccccc
d eeff
ggggghhiiiiiiiiii
请注意第 3 列值末尾的空格。
算法不应完全低效 - 它将用于转换 300MB 的 csv 文件。
我在 Stackoverflow 上搜索并搜索了一段时间,并且可以使用自定义表格格式和格式表格等解决方案找到一些相关问题,但这些解决方案似乎不太适合我来解决这个特定问题。
至于原因:小众 COTS 软件需要这种非常丑陋/不寻常的格式。
【问题讨论】:
-
出于好奇,你打算如何处理这种奇怪的输出?
-
你写过什么吗?
-
我建议查看格式化字符串
'{0,20}' -f 'Foo' -
@EBGreen:是的,我已经写了一点,正如提到的一些带有一些管道、选择、重新排列等的 import-csv。)我实际上考虑过将其添加到我的问题中。但是,我决定不将其包含在问题中,因为它只会使问题更长,而不会添加任何其他信息。
-
添加您尝试过的信息,特别是您尝试过的代码会做三件事(至少对我而言)。有时问题涉及我不熟悉的系统。我知道 Powershell,但您可能正在使用一些我不熟悉的模块。查看您的代码可以让我们以适合您情况的方式回答。另一个考虑是,经常看到代码会指出问题的某些方面,而这些方面在问题的普通语言版本中并不清楚。最后,它会告诉我们您的知识水平,以便我们更好地回答
标签: powershell csv export fixed