Python 更新csv文件中的特定行
我有一个如下的csv文件:Python 更新csv文件中的特定行,python,csv,row,Python,Csv,Row,我有一个如下的csv文件: Name,PhoneNumber,Adress 我想从用户那里获取输入并更改名称。我可以删除整行 name = input("Enter a name : ") fieldnames = ["name", "number", 'address'] with open('book.csv', 'r') as csvfile, open('outputfile.csv', 'w') as output: reader = csv.DictReader(csvfi
Name,PhoneNumber,Adress
我想从用户那里获取输入并更改名称。我可以删除整行
name = input("Enter a name : ")
fieldnames = ["name", "number", 'address']
with open('book.csv', 'r') as csvfile, open('outputfile.csv', 'w') as output:
reader = csv.DictReader(csvfile, fieldnames=fieldnames)
writer = csv.DictWriter(output, fieldnames=fieldnames)
for row in reader:
if not name == row['name']:
writer.writerow({'name': row['name'], 'number': row['number'], 'address': row['address']})
shutil.move('outputfile.csv','book.csv')
这是我的删除代码 如果名称匹配,只需交互提示输入新名称,更新
行
:
for row in reader:
if name == row['name']:
row['name'] = input("enter new name for {}".format(name))
# write the row either way
writer.writerow({'name': row['name'], 'number': row['number'], 'address': row['address']})
旁白:为了最大的兼容性(特别是在windows上),python 2需要
open('outputfile.csv','wb')
(或者在输出文件中得到空行),而python 3需要open('outputfile.csv','w',newline='')
行['name']==输入(“输入新名称:”)
当名称匹配时。然后写一行。这就是你想要的吗?是的,用新名称写这一行。另外,你可以只做writer.writerow(行)
。