草庐IT

python - 从巨大的 CSV 文件中读取随机行

我有一个非常大的CSV文件(15Gb),我需要从中读取大约100万行随机行。据我所见-并实现-Python中的CSV实用程序只允许在文件中按顺序迭代。将所有文件读入内存以使用一些随机选择非常消耗内存,并且遍历所有文件并丢弃一些值并选择其他值非常耗时,所以有没有办法选择一些随机CSV文件中的行并只读该行?我试过没有成功:importcsvwithopen('linear_e_LAN2A_F_0_435keV.csv')asfile:reader=csv.reader(file)printreader[someRandomInteger]CSV文件示例:331.093,329.735251

Python writelines() 和 write() 巨大的时间差

我正在编写一个脚本,它读取文件文件夹(每个文件的大小从20MB到100MB不等),修改每行中的一些数据,然后写回文件的副本。withopen(inputPath,'r+')asmyRead:my_list=myRead.readlines()new_my_list=clean_data(my_list)withopen(outPath,'w+')asmyWrite:tempT=time.time()myWrite.writelines('\n'.join(new_my_list)+'\n')print(time.time()-tempT)print(inputPath,'Cleanin

Python writelines() 和 write() 巨大的时间差

我正在编写一个脚本,它读取文件文件夹(每个文件的大小从20MB到100MB不等),修改每行中的一些数据,然后写回文件的副本。withopen(inputPath,'r+')asmyRead:my_list=myRead.readlines()new_my_list=clean_data(my_list)withopen(outPath,'w+')asmyWrite:tempT=time.time()myWrite.writelines('\n'.join(new_my_list)+'\n')print(time.time()-tempT)print(inputPath,'Cleanin

python - 在巨大列表中查找/搜索的最有效方法(python)

--我刚刚解析了一个大文件,并创建了一个包含42.000个字符串/单词的列表。我想查询[针对此列表]以检查给定的单词/字符串是否属于它。所以我的问题是:这种查找最有效的方法是什么?第一种方法是对列表进行排序(list.sort()),然后使用>>ifwordinlist:print'word'这真的是微不足道的,我相信有更好的方法来做到这一点。我的目标是应用快速查找来查找给定字符串是否在此列表中。如果您对其他数据结构有任何想法,欢迎提出。然而,我现在想避免使用更复杂的数据结构,比如Tries等。我有兴趣听到关于快速查找或任何其他python库方法的想法(或技巧),这些方法可能比简单的i

python - 在巨大列表中查找/搜索的最有效方法(python)

--我刚刚解析了一个大文件,并创建了一个包含42.000个字符串/单词的列表。我想查询[针对此列表]以检查给定的单词/字符串是否属于它。所以我的问题是:这种查找最有效的方法是什么?第一种方法是对列表进行排序(list.sort()),然后使用>>ifwordinlist:print'word'这真的是微不足道的,我相信有更好的方法来做到这一点。我的目标是应用快速查找来查找给定字符串是否在此列表中。如果您对其他数据结构有任何想法,欢迎提出。然而,我现在想避免使用更复杂的数据结构,比如Tries等。我有兴趣听到关于快速查找或任何其他python库方法的想法(或技巧),这些方法可能比简单的i

python - 在 IPython 中释放巨大的 numpy 数组的内存

更新:-这个问题在机器重启后自行解决。还无法弄清楚为什么之前会发生此错误。我有一个函数可以加载一个巨大的numpy数组(~980MB)并返回它。当我第一次启动Ipython并调用这个函数时,它将数组加载到变量中没有任何问题。但如果我再次运行相同的命令,它会退出并引发“内存错误”。我尝试了以下,delhugeArray仍然发生相同的错误。我什至尝试了以下delhugeArraygc.collect()gc.collect()最初,gc.collect()返回145,第二次调用返回48。但即使在此之后,当我调用该函数时,它仍然会引发内存错误。我可以再次加载的唯一方法是重新启动ipython

python - 在 IPython 中释放巨大的 numpy 数组的内存

更新:-这个问题在机器重启后自行解决。还无法弄清楚为什么之前会发生此错误。我有一个函数可以加载一个巨大的numpy数组(~980MB)并返回它。当我第一次启动Ipython并调用这个函数时,它将数组加载到变量中没有任何问题。但如果我再次运行相同的命令,它会退出并引发“内存错误”。我尝试了以下,delhugeArray仍然发生相同的错误。我什至尝试了以下delhugeArraygc.collect()gc.collect()最初,gc.collect()返回145,第二次调用返回48。但即使在此之后,当我调用该函数时,它仍然会引发内存错误。我可以再次加载的唯一方法是重新启动ipython

python - 使用 Python 处理一个巨大的 CSV 时, 'killed' 是什么意思,突然停止?

我有一个Python脚本,它导入一个大型CSV文件,然后计算文件中每个单词的出现次数,然后将计数导出到另一个CSV文件。但是发生的情况是,一旦该计数部分完成并开始导出,它会在终端中显示Killed。我不认为这是内存问题(如果是我假设我会遇到内存错误而不是Killed)。可能是这个过程花费的时间太长了?如果是这样,有没有办法延长超时时间,这样我就可以避免这种情况?代码如下:csv.field_size_limit(sys.maxsize)counter={}withopen("/home/alex/Documents/version2/cooccur_list.csv",'rb')asf

python - 使用 Python 处理一个巨大的 CSV 时, 'killed' 是什么意思,突然停止?

我有一个Python脚本,它导入一个大型CSV文件,然后计算文件中每个单词的出现次数,然后将计数导出到另一个CSV文件。但是发生的情况是,一旦该计数部分完成并开始导出,它会在终端中显示Killed。我不认为这是内存问题(如果是我假设我会遇到内存错误而不是Killed)。可能是这个过程花费的时间太长了?如果是这样,有没有办法延长超时时间,这样我就可以避免这种情况?代码如下:csv.field_size_limit(sys.maxsize)counter={}withopen("/home/alex/Documents/version2/cooccur_list.csv",'rb')asf

python - 读取一个巨大的 .csv 文件

我目前正在尝试从Python2.7中的.csv文件中读取数据,该文件最多有100万行和200列(文件范围从100mb到1.6gb)。我可以对300,000行以下的文件执行此操作(非常缓慢),但是一旦超过此值,我就会出现内存错误。我的代码如下所示:defgetdata(filename,criteria):data=[]forcriterionincriteria:data.append(getstuff(filename,criteron))returndatadefgetstuff(filename,criterion):importcsvdata=[]withopen(filena