在 csv 文件的同一行上写入 2 个变量

Writing 2 variables on the same row in a csv file

我正在创建一个注册系统,它(在注册时)将用户名和密码写入一个 csv 文件。 我如何让两个变量 user_namev2 和 user_passwordv2 写在 csv 文件的旁边?

这是我目前使用的代码

if re.match(user_password2v2, user_passwordv2):
    print("Passwords do match")
    with open ('Accounts.csv', 'a') as Account_file:
        writer = csv.writer(Account_file)
        writer.writerow([user_namev2])
        writer.writerow([user_passwordv2])
        Bottom()

此代码将用户名和密码写在彼此下方,当我希望它们在同一行中彼此相邻时,只是不同的列。

我也尝试过将它全部添加到一个数组并将其写入 csv 文件,但是这在读取 csv 文件时造成了麻烦(发布了一个关于这个的问题。参见 link 下面)

    if re.match(user_password2v2, user_passwordv2):
        print("Passwords do match")
        user_info = []
        user_info.append(user_namev2)
        user_info.append(user_passwordv2)
        with open ('Accounts.csv', 'a') as Account_file:
            writer = csv.writer(Account_file)
            writer.writerow([user_info])

Searching for only the first value in an array in a csv file

我相信

writer.writerow([user_namev2, user_passwordv2])

应该可以解决问题。 (https://realpython.com/python-csv/)

我会像这样使用 pandas

import os
import pandas as pd

if re.match(user_password2v2, user_passwordv2):
  print("Passwords do match")
  if os.path.isfile('Accounts.csv'):
    df = pd.read_csv('Accounts.csv')
  else:
    df = pd.DataFrame(columns=['username', 'password'])
  df = df.append({'username': user_namev2, 'password': user_passwordv2})
  df.to_csv('Accounts.csv')

这可能不完全正确(我自己还没有测试过)但是你知道如何进行

正如 Jackson Hill 提到的,您应该使用 list 作为 writerow。

if user_passwordv2 == user_password2v2:
    print("Passwords do match")
    with open('Accounts.csv', 'a') as Account_file:
        writer = csv.writer(Account_file)
        writer.writerow([user_namev2, user_passwordv2])

“你也知道为什么我的程序会跳过电子表格中的一行吗?出于某种原因,它会每隔一行写入信息”

我遇到了同样的问题,你需要使用lineterminator = '\n',例如

正在创建一个 csv 写入器对象

csvwriter = csv.writer(csvfile, lineterminator = '\n').