![]() |
1
3
如果您可以在读取数据时对其进行处理,而不是将其全部保存并在之后进行处理,这将消除问题。 我避免先计算行数,因为这需要读取整个文件两次。我想,如果文件很小,效率损失就不大,但是如果您知道文件很小,那么您可以分配足够大的空间。 所以一般来说,我的方法——如果我不能一次处理一行文件——就是使用一个可以增长的数据结构,比如链表。然后为每行分配一个新的块。根据所做的工作,您可能会使用一个动态数组:分配足够的空间来满足正常情况。如果要填充,请分配更大的空间,将第一个空间复制到第二个空间,删除第一个空间,然后继续使用第二个空间。如果你把它填满,重复这个过程。这可能是大量的数据移动,但最终使用的空间量将小于链接列表,因为您没有指针,而且遍历速度更快,因为您没有跟踪指针,可能会在整个虚拟内存中运行。 |
![]() |
2
4
两种最佳实践:
|
![]() |
3
3
实际上没有“最佳实践”。请记住数据的特定结构、读取、存储、查询、排序、查找/消除/忽略重复项等的速度。树、链接列表、哈希、有序数据等是很好的选项,具体取决于我前面提到的因素。 我同意其他人的观点。不需要重新发明轮子。关于如何解析csv必须有无数的样本。 但是,在选择您最喜欢的库时,请注意以下几点:
3.1。字符串中有逗号。例如,它与史密斯、约翰不同。 3.2。带有字符串的特殊字符,如撇号、制表符或引号。如何处理?例如,Microsoft通常使用双引号来表示字符串中的引号。 3.3。当然,还要注意行尾格式(Unix或Windows样式)。 一定要看看那些 实际数据 . 永远不要相信用户(也不要相信程序员:—)。 祝你好运。路易斯。 用于生成的Excel和Visual Basic |
![]() |
4
1
使用一个库或预先计算行数。您还可以使用某种列表数据结构来避免担心行数。 +在我看来,如果你不想学习很多关于csv解析和csv解析边缘案例的知识,这是日产的粉丝推荐的一个图书馆。 |
![]() |
Ujjawal Pandey · 如何为矢量化数据帧创建行CSV? 2 年前 |
![]() |
n328 · 如何将指数格式的值从csv读取到numpy数组中? 2 年前 |
![]() |
Bilal Sedef · 如何快速组合特定列上的多个csv文件? 2 年前 |
![]() |
christhebliss · 如何在一个csv列中写入分号分隔的值? 2 年前 |
![]() |
Max J. · 用整数作为键将dict写入csv 2 年前 |
![]() |
Sarai · Python中的CSV文件处理和计算值 2 年前 |
![]() |
BabaZuri · 应用筛选器时将csv中的行添加到数组 2 年前 |
![]() |
user18796731 · 在Python中以CSV格式保存数组元素 2 年前 |