Algorithm 如何在GO lang中将大型csv文件拆分为多个文件?
我是一个新手Go-lang程序员,试图学习Go-lang的功能。我想在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 如果它很小,我通常会用这个: 但是,该软件包也存在: 不管
感谢您根据您的shell fu,此问题可能更适合于常见的shell实用程序,但您特别提到了go 让我们仔细考虑一下这个问题 这个csv文件有多大?我们说的是100线还是5G 如果它很小,我通常会用这个: 但是,该软件包也存在: 不管怎样,让我们回到问题的抽象。您有一个标题(第一行),然后是文档的其余部分 所以我们可能想做的(如果暂时忽略csv)是读取我们的文件 然后,我们要将文件体按其中的所有换行分开 您可以使用此选项来执行此操作: 您没有提到,但您知道要按多少文件进行拆分,还是希望按行数或字节数进行拆分?这里的实际限制是什么 通常情况下,它不是文件计数,但如果我们假装是,我们只想将行计数除以预期的文件计数,得到行/文件 现在,我们可以获取适当大小的切片,并通过以下方式将文件写回: 我有时会用一个技巧来帮助别人认为我扔了这些东西,那就是写下我们的使命宣言 “我想在go中将一个大型csv文件拆分为多个文件” 然后我开始把它分解成几个部分,但采取分而治之的方法——不要试图一次解决整个问题——只要把它分解到你能想到的地方就行了 此外,在您能够轻松地编写真实代码之前,请充分使用伪代码。有时,写一个简短的注释,内联您认为代码应该如何流动,然后将其降到您可以从那里编码和工作的最小部分,这会有所帮助 顺便说一下,许多golang.org软件包都有示例链接,您可以在浏览器中运行示例代码,并将其剪切/粘贴到您自己的本地环境中
此外,我知道我会抓住一些讨厌的人,但对于书籍,我认为,你会通过努力让事情运转起来而不是阅读来更快地学习。行动永远胜过被动。不要害怕失败。这里有一些可能会有所帮助的建议。您可以设置必要的块大小(以字节为单位),文件将被分割成适当数量的块。请记住,CSV可以在列中包含换行符。…)