java里csv格式对齐_优化非常大的csv文件中的搜索

我有一个带有单列的csv文件,但有620万行,所有行都包含6到20个字母之间的字符串 . 一些字符串将在重复(或更多)条目中找到,我想将它们写入新的csv文件 - 猜测应该有大约100万个非唯一字符串 . 就是这样,真的 . 然而,不断搜索600万条目的字典确实需要时间,我会很感激如何做到这一点 . 根据我所做的一些时间安排,到目前为止我写的任何脚本都需要至少一周(!)才能运行 .

第一次尝试:

in_file_1 = open('UniProt Trypsinome (full).csv','r')

in_list_1 = list(csv.reader(in_file_1))

out_file_1 = open('UniProt Non-Unique Reference Trypsinome.csv','w+')

out_file_2 = open('UniProt Unique Trypsin Peptides.csv','w+')

writer_1 = csv.writer(out_file_1)

writer_2 = csv.writer(out_file_2)

# Create trypsinome dictionary construct

ref_dict = {}

for row in range(len(in_list_1)):

ref_dict[row] = in_list_1[row]

# Find unique/non-unique peptides from trypsinome

Peptide_list = []

Uniques = []

for n in range(len(in_list_1)):

Peptide = ref_dict.pop(n)

if Peptide in ref_dict.values(): # Non-unique peptides

Peptide_list.append(Peptide)

else:

Uniques.append(Peptide) # Unique peptides

for m in range(len(Peptide_list)):

Write_list = (str(Peptide_list[m]).replace("'","").replace("[",'').replace("]",''),'')

writer_1.writerow(Write_list)

第二次尝试:

in_file_1 = open('UniProt Trypsinome (full).csv','r')

in_list_1 = list(csv.reader(in_file_1))

out_file_1 = open('UniProt Non-Unique Reference Trypsinome.csv','w+')

writer_1 = csv.writer(out_file_1)

ref_dict = {}

for row in range(len(in_list_1)):

Peptide = in_list_1[row]

if Peptide in ref_dict.values():

write = (in_list_1[row],'')

writer_1.writerow(write)

else:

ref_dict[row] = in_list_1[row]

编辑:这里是csv文件的几行:

SELVQK

AKLAEQAER

AKLAEQAERR

LAEQAER

LAEQAERYDDMAAAMK

LAEQAERYDDMAAAMKK

MTMDKSELVQK

YDDMAAAMKAVTEQGHELSNEER

YDDMAAAMKAVTEQGHELSNEERR

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值