2

当我尝试在 csv 文件中填充用户 First_Name 时出现此错误。有人可以告诉我我做错了什么

 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))

这是我正在获取 Traceback 的 Traceback(最近一次调用最后一次):First_Name = ["Test"+str(user) for user in range (1, users+1)] TypeError: can only concatenate list (not "int")列出

4

1 回答 1

4

users是一个列表:

users = range(0,int(users))

但是您随后尝试从该列表中创建一个范围:

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

where是添加到列表users + 1的尝试。1

不要那样做。只需循环您现有的范围:

First_Name = ["Test"+str(user + 1) for user in users]
于 2013-07-08T18:24:26.773 回答