Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何在GO lang中将大型csv文件拆分为多个文件?_Algorithm_Csv_Go - Fatal编程技术网

Algorithm 如何在GO lang中将大型csv文件拆分为多个文件?

Algorithm 如何在GO lang中将大型csv文件拆分为多个文件?,algorithm,csv,go,Algorithm,Csv,Go,我是一个新手Go-lang程序员,试图学习Go-lang的功能。我想在Go-lang中将一个大的csv文件拆分为多个文件,每个文件都包含头文件。我如何做到这一点?我到处都找遍了,但是找不到正确的解决方案。在这方面的任何帮助都将不胜感激。 也请推荐一本好书给我参考 感谢您根据您的shell fu,此问题可能更适合于常见的shell实用程序,但您特别提到了go 让我们仔细考虑一下这个问题 这个csv文件有多大?我们说的是100线还是5G 如果它很小,我通常会用这个: 但是,该软件包也存在: 不管

我是一个新手Go-lang程序员,试图学习Go-lang的功能。我想在Go-lang中将一个大的csv文件拆分为多个文件,每个文件都包含头文件。我如何做到这一点?我到处都找遍了,但是找不到正确的解决方案。在这方面的任何帮助都将不胜感激。 也请推荐一本好书给我参考


感谢您

根据您的shell fu,此问题可能更适合于常见的shell实用程序,但您特别提到了go

让我们仔细考虑一下这个问题

这个csv文件有多大?我们说的是100线还是5G

如果它很小,我通常会用这个:

但是,该软件包也存在:

不管怎样,让我们回到问题的抽象。您有一个标题(第一行),然后是文档的其余部分

所以我们可能想做的(如果暂时忽略csv)是读取我们的文件

然后,我们要将文件体按其中的所有换行分开

您可以使用此选项来执行此操作:

您没有提到,但您知道要按多少文件进行拆分,还是希望按行数或字节数进行拆分?这里的实际限制是什么

通常情况下,它不是文件计数,但如果我们假装是,我们只想将行计数除以预期的文件计数,得到行/文件

现在,我们可以获取适当大小的切片,并通过以下方式将文件写回:

我有时会用一个技巧来帮助别人认为我扔了这些东西,那就是写下我们的使命宣言

“我想在go中将一个大型csv文件拆分为多个文件”

然后我开始把它分解成几个部分,但采取分而治之的方法——不要试图一次解决整个问题——只要把它分解到你能想到的地方就行了

此外,在您能够轻松地编写真实代码之前,请充分使用伪代码。有时,写一个简短的注释,内联您认为代码应该如何流动,然后将其降到您可以从那里编码和工作的最小部分,这会有所帮助

顺便说一下,许多golang.org软件包都有示例链接,您可以在浏览器中运行示例代码,并将其剪切/粘贴到您自己的本地环境中


此外,我知道我会抓住一些讨厌的人,但对于书籍,我认为,你会通过努力让事情运转起来而不是阅读来更快地学习。行动永远胜过被动。不要害怕失败。

这里有一些可能会有所帮助的建议。您可以设置必要的块大小(以字节为单位),文件将被分割成适当数量的块。

请记住,CSV可以在列中包含换行符。…)