首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python删除csv文件中的特定行

使用python删除csv文件中的特定行
EN

Stack Overflow用户
提问于 2014-01-31 06:16:51
回答 2查看 16.2K关注 0票数 1

如果第二列与字符串匹配,我正在尝试从csv文件中删除一行。我的csv文件包含以下信息:

代码语言:javascript
复制
    Name
15  Dog

我希望删除其中包含"Name“的行。我使用的代码是:

代码语言:javascript
复制
import csv

reader = csv.reader(open("info.csv", "rb"), delimiter=',')

f = csv.writer(open("final.csv", "wb"))
for line in reader:
    if "Name" not in line:
        f.writerow(line)
        print line

但是"Name“行没有被删除。我做错了什么?

编辑:我用错了分隔符。将其更改为\t起作用。下面是现在可以工作的代码。导入csv

代码语言:javascript
复制
reader = csv.reader(open("info.csv", "rb"), delimiter='\t')

f = csv.writer(open("final.csv", "wb"))
for line in reader:
    if "Name" not in line:
        f.writerow(line)
        print line
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-31 06:24:51

您似乎在csv.reader中指定了错误的分隔符(逗号

票数 4
EN

Stack Overflow用户

发布于 2014-01-31 06:23:29

reader产生的每一行都是一个list,由您的分隔符分隔。顺便说一下,您指定的是,,您确定这是您想要的分隔符吗?您的样本用制表符分隔。

无论如何,您希望检查'Name'是否在给定行的任何元素中。因此,无论您的分隔符是否正确,此操作仍然有效:

代码语言:javascript
复制
for line in reader:
    if any('Name' in x for x in line):
        #write operation

注意不同之处。这个版本检查每个列表元素中的'Name',您的检查'Name'是否in列表。它们在语义上是不同的,因为'Name' in ['blah blah Name']False

我建议首先修复分隔符错误。如果您仍然有问题,请使用if any(...),因为确切的标记名称可能不在您的列表中,但包含‘'Name'’的内容在列表中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21468582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档