Python 迭代时if语句不会计算

Python 迭代时if语句不会计算,python,csv,Python,Csv,这段代码是我试图从CSV中的行中提取多个唯一值的尝试。CSV在标题中类似于以下内容: 说明1,费用部分1,费用部分2,说明2,费用部分1,费用部分2 descr列在单个列中具有多个唯一名称。我想把这些独特的费用名称,并使他们成为一个新的标题。为此,我决定从获取所有不同的descr列名称开始,这样当我开始从实际行中提取数据时,我可以检查该行是否有费用金额或我需要的费用名称之一。这段代码可能有很多错误,但我是个初学者。我真的只是想知道为什么当fin中的l等于逗号时,我的第一个if语句从未被触发,我知

这段代码是我试图从CSV中的行中提取多个唯一值的尝试。CSV在标题中类似于以下内容:

说明1,费用部分1,费用部分2,说明2,费用部分1,费用部分2

descr列在单个列中具有多个唯一名称。我想把这些独特的费用名称,并使他们成为一个新的标题。为此,我决定从获取所有不同的descr列名称开始,这样当我开始从实际行中提取数据时,我可以检查该行是否有费用金额或我需要的费用名称之一。这段代码可能有很多错误,但我是个初学者。我真的只是想知道为什么当fin中的l等于逗号时,我的第一个if语句从未被触发,我知道它一定在某个点上被触发,因为它在我的行字符串中写入了一个逗号。谢谢

row = ''
header = ''
columnames = ''
cc = ''
#fout = open(","w")
fin = open ("raw data.csv","rb")

for l in fin:
    if ',' == l:
        if 'start of cust data' not in row:
            if 'descr' in row:
                columnames = columnames + ' ' + row
                row = ''
            else:
                pass
        else:
            pass
    else:
        row = row+l
        print(columnames)

print(columnames)

在文件上迭代时,得到的是行,而不是字符——它们的末尾有换行符,
\n
。您的
if','==l:
语句将永远不会成功,因为即使有一行中只有一个逗号,
l
的值也将是
,\n“


我建议使用:您将获得比像现在这样手动操作更好的结果。

我不知道CSV模块存在,我将使用它。谢谢你澄清了我对迭代是如何发生的误解。