用python中CSV文件中的值替换变量
我有一个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 这里,第一行表示
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您几乎必须做同样的事情,我的第一个解决方案只需一次完成