我正在尝试使用CSV文件在Python 3中创建注册脚本,但是当它将用户名和密码导入CSV文件时,它会显示在同一行中。 例如,如果我使用用户名和密码创建一个帐户作为测试,然后再创建一个名为test2的帐户,则将其添加到CSV文件中,如下所示:
test, test, test2, test2
当我想要这样的时候:
test, test
test2, test2
我在做什么错了?
def register():
print ('Follow the register instructions')
username_check = False
while username_check == False:
username = input('Please enter a Username: ')
with open('users.csv') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
if username == row[0]:
print ('Username not available, try again.')
username_check = False
else:
username_check = True
if username_check == True:
password_check = False
while password_check == False:
password = input('Please enter a Password: ')
score = "0"
account = username + ',' + password + ',' + score
with open('users.csv', "a") as f:
for row in account:
f.write(row)
print ("Thank You for Registering, You can now login")
print ("")
login()
答案 0 :(得分:3)
尝试:
.gitignore
'\ n'表示换行 “ \ t”表示制表符
答案 1 :(得分:1)
由于在迭代username + "," + password + "," + score
时account是一个字符串(for row in account
),所以您正在迭代一个字符串,然后每次row
是一个字符串account的字符。我想您可以摆脱for循环,只需f.write(account + "\n")
答案 2 :(得分:1)
您使用了csv
模块来读取数据,为什么不还使用它来写入新数据:
with open('users.csv', 'a') as f:
writer = csv.writer(f)
writer.writerow(account.split(','))
应将每个帐户条目作为users.csv
中的新行。