Python-CSV文件写入同一行

时间:2019-01-24 22:48:56

标签: python python-3.x

我正在尝试使用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()

3 个答案:

答案 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中的新行。