我的代码从csv文件中提取了一个随机名称。按下按钮后,我希望我的代码搜索csv文件,并更新代码中先前生成的名称旁边的单元格。
存储名称的变量称为name
从csv文件中提取随机名称的索引存储在变量y
该函数看起来像这样。我之前曾问过这个问题,但是由于没有运气,所以我对函数进行了编辑,希望更加清楚。
namelist_file = open('StudentNames&Questions.csv')
reader = csv.reader(namelist_file)
writer = csv.writer(namelist_file)
rownum=0
array=[]
for row in reader:
if row == name:
writer.writerow([y], "hello")
仅csv文件的前两列是相关的
此功能可从csv文件中提取随机名称。
def NameGenerator():
namelist_file = open('StudentNames&Questions.csv')
reader = csv.reader(namelist_file)
rownum=0
array=[]
for row in reader:
if row[0] != '':
array.append(row[0])
rownum=rownum+1
length = len(array)-1
i = random.randint(1,length)
global name
name = array[i]
return name
答案 0 :(得分:2)
您的代码存在许多问题:
row
实际上是一个代表行中所有数据的列表。因此,它不能等于您要搜索的名称,只能是第0个索引。以下方法应该起作用:
with open('StudentNames&Questions.csv', 'r') as infile:
reader = csv.reader(infile)
data = [row for row in reader]
for row in data:
if row[0] == name:
row[1] += 1
with open('StudentNames&Questions.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerows(data)