2017-10-08 14 views
0

ユーザにユーザ名とパスワードを尋ねるコードを書こうとしていて、これをcsvファイルに2つの別々のカラムで格納するコードを書こうとしています。私は、さまざまな方法の多くを試してみましたが、それをやるように見えることはできません:/別々の列にCSVファイルを書き込む方法は?

username = input ("What is your first name (or username)? ") 
username = (username[0:3]) 
birthyear = input ("What year were you born? ") 
birthyear = (birthyear[2:4]) 
print (("Your username is ") + (username) + (birthyear)) 
login = (username) + (birthyear) 
newpassword = input ("Please create a password ") 
with open ("scores.csv", "a") as scoreFile: 
    scoreFileWriter = csv.writer(scoreFile) 
    scoreFileWriter.writerow(username + "," + newpassword+"\n") 
    scoreFile.close() 

これは私が試した一つの方法ですが、それは、このような別の列内のすべての単一の文字を書き込みます。

ボブ、パスワードこれに代えて

ボブ、パスワード事前に

おかげであなたが任意のヘルプを提供することができれば:)

答えて

1

'、'の区切り文字を指定する必要があります。 https://docs.python.org/3/library/csv.html

scoreFileWriter = csv.writer(scoreFile, delimiter=',')

また、プレーンテキストでパスワードをstoryingすることは非常に悪い習慣(TM)です。

+0

ありがとうございます! –

0

カンマを自分でやっているこのラインでは、それは(@Pipupnipupは、区切り文字を指定して、言ったように)CSVライターがあなたのために何をするかであるように見えます

あなただけのwriterowリストを渡す必要がありますし、

scoreFileWriter.writerow([username, newpassword]) 

反復する:パスワードをプレーンテキストで保存するのは、Very Bad Practice(TM)です。コードの作業

+0

ありがとう:)それは今働きます! –

0

:あなたの規定の問題.writerowに関連して

username = input ("What is your first name (or username)? ") 
username = (username[0:3]) 
birthyear = input ("What year were you born? ") 
birthyear = (birthyear[2:4]) 
print (("Your username is ") + (username) + (birthyear)) 
login = (username) + (birthyear) 
newpassword = input ("Please create a password ") 
with open ("scores.csv", "a") as scoreFile: 
    scoreFileWriter = csv.writer(scoreFile, delimiter=',') 
    scoreFileWriter.writerow([login, newpassword]) 
    scoreFile.close() 
0

は、()([]、()、 '')のシーケンスを必要とします。 文字列を渡すので、シーケンスwriterow()は文字列の各文字を繰り返し処理せず、各文字はCSVの別のセルに書き込まれます。 [username、newpassword]を入力すると、シーケンスが提供されます。

また、元のユーザー名を入力した文字列として渡し、ユーザー名として返されたusername + birthyearの連結名ではないことに注意してください。

関連する問題