如何在csv文件中搜索特定的列值,如果存在,用Python将前两个列值写入新的csv文件?

2024-05-18 15:32:24 发布

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

文件1.csv:

Country,Location,number,letter,name,pup-name,null
a,ab,1,qw,abcd,test1,3
b,cd,1,df,efgh,test2,4
c,ef,2,er,fgh,test3,5
d,gh,3,sd,sds,test4,
e,ij,DDDD,we,sdrt,test5,
f,kl,6,sc,asdf,test6,
g,mn,7,df,xcxc,test7,
h,op,8,gb,eretet,test8,
i,qr,8,df,hjjh,test9,

我想在上述csv文件的第3列中搜索字符串/数字。如果存在,则将“前两列值”写入另一个文件。在

例如:

^{pr2}$

请指导我如何使用Python实现这一点?在

我尝试使用以下代码:

^{3}$

但最后一行只有两个值。在


Tags: 文件csvnamenumberdfabcdlocation
1条回答
网友
1楼 · 发布于 2024-05-18 15:32:24

我看不出你的代码有什么问题:

  • 第三列在row[2]中,您是对的。在
  • 前两列是row[0:2]row[:2],你是对的。在

如果我模拟读数,像这样:

import io
import csv

data = """Country,Location,number,letter,name,pup-name,null
a,ab,1,qw,abcd,test1,3
b,cd,1,df,efgh,test2,4
c,ef,2,er,fgh,test3,5
d,gh,3,sd,sds,test4,
e,ij,DDDD,we,sdrt,test5,
f,kl,6,sc,asdf,test6,
g,mn,7,df,xcxc,test7,
h,op,8,gb,eretet,test8,
i,qr,8,df,hjjh,test9,
"""

with io.StringIO(data) as f:
    reader = csv.reader(f)
    next(reader, None)  # discard the header
    for row in reader:
        if row[2] == "1":
            print(row[:2])

它打印:

^{pr2}$

更改搜索字符串的值

相关问题 更多 >

    热门问题