用python中CSV文件中的值替换变量

用python中CSV文件中的值替换变量,python,variables,csv,header,Python,Variables,Csv,Header,我有一个csv文件,格式如下: variable, name, date, location, youtube, e1, My birthday, 21st april, USA, www.xyz.com e2, your b'day, 1st May, India, www.abc.com e3, christmas , 25th Dec, UK, www.christmas.com 这里,第一行表示

我有一个csv文件,格式如下:

variable,     name,   date,       location, youtube, 
 e1,      My birthday, 21st april, USA,    www.xyz.com
 e2,      your b'day,  1st May,   India,   www.abc.com
 e3,      christmas ,  25th Dec,  UK,      www.christmas.com
这里,第一行表示标题,
e1
e2
e3
是我的变量

现在我想检查在一些文本中是否有一个名为
e1.name
的变量,然后我想用相应的值替换它,即
My birth

同样,如果存在变量
e2.location
,则必须将其替换为
India
。因此,我想要一种类似矩阵的访问

import csv
with open('test.csv') as f:
    fieldnames = ('variable', 'name', 'date', 'location', 'youtube')
    r = csv.DictReader(f, fieldnames)
    next(f, None) # skip header
    rows = []
    for row in r:
        if row['variable'] == 'e1':
            row['name'] = 'My birthday'
        if row['variable'] == 'e2':
            row['location'] = 'India'
        rows.append(row)
    w = csv.DictWriter(a_file, fieldnames)
    w.writerows(rows)
如果需要矩阵形式,请执行以下操作:

import csv
with open('test.csv') as f:
    next(f, None) # skip header
    rows = list(csv.reader(f))
    rows[0][1] = 'My birthday'
    rows[1][3] = 'India'
    w = csv.writer(a_file)
    w.writerows(rows)

我假设它没有你放进去的所有空格是的..没有空格,只放那些让列以适当的格式显示如果你不放进去实际上会更容易,如果人们想保存你的文件,他们必须删除所有空格你知道怎么做吗?我迫切需要它,作为我正在从事的一个开源项目的一部分。我们这里不紧急,但我有一个解决方案。您的解决方案可以工作,但我想访问它们,而不使用变量名…像矩阵形式一样,以[i][j]@user1617731访问每个单元格。哦,您是说您知道它已经是完全相同的文件了吗?只有3个变量?@user1617731您几乎必须做同样的事情,我的第一个解决方案只需一次完成