2013-07-08 58 views
2

當我嘗試在csv文件中填充用戶First_Name時出現此錯誤。可有人告訴我,我做錯了什麼錯誤:只能連接列表(不是「int」)到列表

import csv 

# Define users 
valid_input = False 
while not valid_input: 
    users =raw_input('Number of users: ') 
    try: 
     users = range(0,int(users)) 
     valid_input = True 
    except: 
     print "Invalid input" 
     pass 

First_Name = ["Test"+str(user) for user in range (1, users+1)] 
Last_Name = ["User%s" %user for user in users] 
Email_Addresses = [] 
for user in users: 
    email= raw_input("Email domain for user %d: " %user) 
    Email_Addresses.append(Last_Name[user] + email) 
Password = ["Password1" for user in users] 
Group =["Test" for user in users] 
Admin = ["Yes" for user in users] 
# open a file for writing. 
# open a file for writing. 
with open('users.csv', 'wb') as csv_out: 
    writer = csv.writer(csv_out) 
    writer.writerows(zip(Email_Addresses, Password, First_Name, Last_Name, Group, Admin)) 

這是我得到 回溯(最近最後一次通話)回溯: 將First_Name =「測試」 + STR(用戶)用戶範圍內(1 ,用戶+ 1)] 類型錯誤:只能串聯列表(不是 「INT」)列出

+0

您需要包含* full * traceback,因此我們不必猜測錯誤發生的位置。 –

回答

3

users是一個列表:

users = range(0,int(users)) 

但你嘗試創建一個新範圍從該列表:

First_Name = ["Test"+str(user) for user in range (1, users+1)] 

其中users + 1是一個嘗試添加1到列表中。

不要這樣做。只需循環使用您現有的範圍:

First_Name = ["Test"+str(user + 1) for user in users] 
+0

使用該腳本,我將被迫一次又一次地輸入電子郵件域,具體取決於我在輸入中給出的用戶數量。我需要它填充給定的一個電子郵件地址的所有用戶。 – Wachira

+0

然後在循環之外詢問'email'的值* –

相關問題