不能使用python从列表元素中删除双引号

2024-10-01 02:31:07 发布

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

我试图通过使用strip或replace从一些列表元素中删除一些额外的双引号,但它们没有被删除。我正在使用以下

with open(source_initial2, 'r', encoding='ISO-8859-1',newline='') as csvf:
        reader = csv.reader(csvf, delimiter=";")
        for row in reader:
            for i in range(len(row)):
                if "\"" in row[i]:
                    row[i].replace('\"','')  
            igecontents.append(row)

return igecontents

csv中的行如下所示:

DCA.P/C.06190;7613329007877;WENGER, COBALT 16 COMPUTER BACKPACK;" BLUE (R)""";35,92;Yes
DCA.P/C.06191;7613329007914;WENGER, PILLAR 16 COMPUTER BACKPACK;" BLACK/GRAY (R)""";35,92;No

Tags: csvin元素列表forreplacecomputerreader
2条回答

python中str对象的replace函数返回一个新的str,并且不修改调用它的对象,因此您应该做的是

row[i] = row[i].replace('\"','')

这很好:

import csv
with open('names.csv', 'r') as csvf:
    output = []
    for row in csvf.readlines():
        output.append(row.replace('\"', ''))

with open('outfile','a') as f:
    f.writelines(output)

输出文件内容:

DCA.P/C.06190;7613329007877;WENGER, COBALT 16 COMPUTER BACKPACK; BLUE (R);35,92;Yes
DCA.P/C.06191;7613329007914;WENGER, PILLAR 16 COMPUTER BACKPACK; BLACK/GRAY (R);35,92;No

您的代码中有一些多余的位是不必要的—比如检查引号是否在行中。。。。也不需要读卡器对象—您已经用WITHOPEN(“…”)as csvf语句打开了文件

相关问题 更多 >