簡體   English   中英

Python在csv中寫錯了東西

[英]Python writes the wrong thing in csv

代碼:

import tkinter
import csv


def mainapp():
print ('R')

def SigUP():

U = input1.get()
P = input2.get()
R = input3.get()

def P():
    myData = [[U, P, R]]
    myFile = open('csvexample3.csv', 'w')  
    with myFile:  
            writer = csv.writer(myFile)
            writer.writerows(myData)


if U == '' or P == '' or R == '':
    print ('No')
else:
    P()

def LogIN():
U = input1.get()
P = input2.get()
R = input3.get()


main = tkinter.Tk()

realname = tkinter.Label(main, text='Real Name')
input3 = tkinter.Entry(main)
Username = tkinter.Label(main, text='Username')
input1 = tkinter.Entry(main)
Password = tkinter.Label(main, text='Password')
input2 = tkinter.Entry(main, show="*")
SigUp = tkinter.Button(main, text='Join Us Now', command=SigUP)
LogIn = tkinter.Button(main, text='Log In', command=LogIN)

input3.grid(column='2', row='1')
realname.grid(column='1', row='1')
input1.grid(column='2', row='2')
Username.grid(column='1', row='2')
input2.grid(column='2', row='3')
Password.grid(column='1', row='3')
SigUp.grid(columnspan='3', row='5')
LogIn.grid(columnspan='3', row='4')

main.mainloop()

在我的 csv 文件中,我得到了這個:

Ben4594,<function SigUP.<locals>.P at 0x101d51950>,Ben

我希望我的 csv 應該是這樣的:

Ben4594,Password,Ben

我正在使用 python 3 和 tkinter。

您遭受名稱沖突。 看看你的代碼中的這個地方:

U = input1.get()
P = input2.get()
R = input3.get()

def P():
#        <=============== point of interest
    myData = [[U, P, R]]

一個簡單的變量P ,但你只是用同名的函數定義覆蓋了它。 因此,當您寫入文件時,您將獲得函數的值,即函數描述符。

更改變量名稱以避免沖突。 通常,使用有意義的名稱,您將避免這個問題(以及許多其他問題)。

user_id      = input1.get()
password     = input2.get()
display_name = input3.get()

def write_user_to_file():
    myData = [[user_id, password, display_name]]

另外,請考慮使用函數參數而不是全局變量。

暫無
暫無

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

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