我有一个像这样的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(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')
这是我的删除代码。
答案 0 :(得分:3)
如果名称匹配,则只需交互式提示输入新名称,然后更新row
:
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']})
除此之外:一些python 2版本需要open('outputfile.csv', 'wb')
(或者输出文件中有空白行),而某些python 3版本需要open('outputfile.csv', 'w', newline='')
。
最新版本的python 2或3只用open('outputfile.csv', 'w')
即可。