csv文件中的两列将作为单列读取。python 2.7

2024-09-30 12:11:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个CSV文件。在获取列表中的每个元素后,我要用列表中的元素B作为匹配元素。在

问题是B中有两列。第一列有唯一的数字,第二列有要修复的字符串。在

我得到的输出是:

628227teitARMTEteke : iQIARMTEMAC
628226iQIARMTEMAC 9 : iQIARMTEMAC
628229iQIAConfigCH : iQIAConfigCH
627701iQIAConfigCH : iQIAConfigCH

但我希望我的输出是:

^{pr2}$

编码

import csv
from nltk.metrics import distance


with open("all_correct_promo.csv","rb") as file1:
    reader1 = csv.reader(file1)
    correctPromoList = [''.join(i) for i in reader1]
   # print correctPromoList
with open("all_extracted_promo3.csv","rb") as file2:
    reader2 = csv.reader(file2)
    extractedPromoList = [''.join(i) for i in reader2]
    #print extractedPromoList

incorrectPromo = {}
count = 0
for extracted in extractedPromoList:
    #print 'Computing %dth promo code...' % count
    incorrectPromo[extracted] =  find_min_edit(extracted,correctPromoList) # get comma separated str of real promo codes nearest to extracted
    count+=1
#print incorrectPromo


for key, value in incorrectPromo.iteritems():
    print key ,':', value

现在,唯一的数字是通过字符串读取的,这将影响字符串的更正方式。我希望数字与字符串一起显示,但不影响字符串与列表A中字符串匹配的方式

从all_extracted_promo3.csv中获取示例

628229  iQIABundUPGR
628229  iQIAPortUPGR
628229  iQIAConfigCH
628229  iQIARMTEMAC 9

所有样本均正确_促销.csv在

iQ BundleUPGR
IQ MANAGED
IQ04 BRP
IQ1MOBILSUP
IQ2MOBILSUP
iQBundIeUPGR
iQBundle 1
iQBundle 2

Tags: csv字符串in元素列表for数字all
1条回答
网友
1楼 · 发布于 2024-09-30 12:11:22

撇开一种奇怪的获取数据的方法——至少可以这么说——我将严格地回答csv.reader。在

为了使csv.reader区分列,您需要根据您的.csv设置其dialect。正如its docs所说,它接受所有独立的dialect formatting parameters作为关键字参数。在这里,您可能对delimeter感兴趣:

csv.reader(<file>,delimeter=<whatever>)

从节选来看,all_extracted_promo3.csv有两个空格作为分隔符,all_correct_promo.csv使用一个空格。^{} only supports single-character delimiters though

^{pr2}$

因此,您要么绕过这个问题(忽略第二个元素),要么更改生成文件的软件(例如,使用标准逗号作为分隔符),要么使用其他工具来解析文件。在

相关问题 更多 >

    热门问题