首页 > 解决方案 > 在 Python 的 csv.reader 中删除神秘的双标签

问题描述

我正在上 CSV 模块的课程。

Pesky'\t\t'出现在每行的最后一个值上,这是一个电子邮件值。

> ['first_name', 'last_name', 'email'] ['John', 'Doe',
> 'john-doe@bogusemail.com\t\t'] ['Mary', 'Smith-Robinson',
> 'maryjacobs@bogusemail.com\t\t'] ['Dave', 'Smith',
> 'davesmith@bogusemail.com\t\t']

我认为这是因为 excel 在电子邮件后添加了两个选项卡,大概是为了防止它成为超链接。但这是TMI。

我怎样才能读到这个并'\t\t'在每封电子邮件之后去掉 's?

这是我到目前为止所拥有的:

with open('names cs.csv') as f:
    reader = csv.reader(f)
    for i in reader:
        print(i)

标签: pythonexcelstringcsvfile

解决方案


CSV 模块没有办法解决这个问题。最简单的方法是在导入后清理数据。

循环浏览您的电子邮件并将所有 '\t' 替换为空白。

emails = ['jeffadfafadsf\t\t','asdfasdfadsfadf\t\t']

for i in emails:
    i = i.replace('\t','')
    print(i) 

#   The same can be accomplished with the following line of code:

emails = [i.replace('\t','') for i in emails]
print(emails)

由于您的列表有更多字段,因此您需要执行以下操作:

for i in reader:
    i[2] = i.replace('\t','')

如果您好奇并想阅读任何文档,可以在此处找到,可选参数(方言和格式参数)文档可以在此处找到


推荐阅读