簡體   English   中英

如何編輯 Python 3 中的 CSV 行?

[英]How do you edit a CSV row in Python 3?

誰能幫我解決這個問題(在 python 3 中):

def change(username, new_password):
    filename = 'user.csv'
    tempfile = NamedTemporaryFile(delete=False)

    with open(filename, 'rb') as csvfile, tempfile:
        reader = csv.DictReader(csvfile)
        fieldnames = ['Name', 'DOB', 'POB', 'Username', 'Password', 'Role', 'Credit']
        writer = csv.DictWriter(tempfile, fieldnames=fieldnames)

        for row in reader:
            if str(row['Username']) == str(username):
                row['Password'] = new_password
            writer.writerow(row)

    shutil.move(tempfile.name, filename)

它總是給我一個錯誤,說“迭代器應該返回字符串,而不是字節(你是否以文本模式打開文件?)”。 我認為這與模式或其他東西有關..請幫助..

您正在將文件讀取為“rb”,這意味着它是以二進制模式讀取的。 嘗試將其設置為“r”。 此外,DictWriter 不會自動寫入磁盤,因此請記得保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM