修改代码中的错误一直找不到

from random import choice ,randint
import string
import codecs
#常用汉字Unicode编码表(部分),完整列表详见配套源代码
StringBase='\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba'
def getEmail():
    #常见域名后缀,可以随意扩展该列表
    suffix=['.com','.org','.net','.cn']
    characters=string.ascii_letters+string.digits+'_'
    username=''.join((choice(charaters) for i in range(randint(6,12))))
    domain=''.join((choice(characters) for i in range(randit(3,6))))
    return username+'@'+domain+choice(suffix)
def getTelNo():
    return''.join((str(randint(0,9)) for i in range(11)))
def getNameOrAddress(flag):
    '''flag=1表示返回随机姓名,flag=0表示返回随机地址'''
    if flag==1:
        #大部分中国人姓名为2~5个汉字
        rangestart,rangeend=2,5
    elif flag==0:
        #假设地址在10~30个汉字
        rangestart,rangeend=10,30
    result=''.join((choice(StringBase) for i in range(randint(rangestart,rangeend))))
    return result
def getSex():
    return choice(('男','女'))
def getAge():
    return str(randint(18,100))
def main(filename):
    with codecs.open(filename,'w','uty-8')as fp:
        fp.write('Name,Sex,Age,TelNo,Address,Email\n')
        #随机生成200个人的信息
        for i in range(200):
            name=getNameOrAddress(1)
            sex=getSex()
            age=getAge()
            tel=getTelNo()
            address=getNameOrAddress(0)
            email=getEmail()
            line=','.join([name,sex,age,tel,address,email])+'\n'
            fp.write(line)
def output(filename):
    with codecs.open(filename,'r','utf-8')as fp:
        for line in fp:
            line=line.split(',')
            for i in line:
                print(i,end=',')
            print()
                        
if_ _name_ _= ='_ _main_ _':
    filename='information.txt'
    main(filename)
    output(filename)

from random import choice, randint
import string
import codecs

# 常用汉字Unicode编码表(部分),完整列表详见配套源代码
StringBase = '\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba'


def getEmail():
    # 常见域名后缀,可以随意扩展该列表
    suffix = ['.com', '.org', '.net', '.cn']
    characters = string.ascii_letters + string.digits + '_'
    username = ''.join((choice(characters) for i in range(randint(6, 12))))
    domain = ''.join((choice(characters) for i in range(randint(3, 6))))
    return username + '@' + domain + choice(suffix)


def getTelNo():
    return ''.join((str(randint(0, 9)) for i in range(11)))


def getNameOrAddress(flag):
    '''flag=1表示返回随机姓名,flag=0表示返回随机地址'''
    if flag == 1:
        # 大部分中国人姓名为2~5个汉字
        rangestart, rangeend = 2, 5
    elif flag == 0:
        # 假设地址在10~30个汉字
        rangestart, rangeend = 10, 30
    result = ''.join((choice(StringBase) for i in range(randint(rangestart, rangeend))))
    return result


def getSex():
    return choice(('男', '女'))


def getAge():
    return str(randint(18, 100))


def mains(filename):
    # codecs.open(filename, 'wb', encoding='utf-8').write('Name,Sex,Age,TelNo,Address,Email\n')
    with codecs.open(filename, 'w', encoding='utf-8') as fp:
        fp.flush()
        # fp.write('Name,Sex,Age,TelNo,Address,Email\n')
        # 随机生成200个人的信息
        for i in range(200):
            name = getNameOrAddress(1)
            sex = getSex()
            age = getAge()
            tel = getTelNo()
            address = getNameOrAddress(0)
            email = getEmail()
            line = ','.join([name, sex, age, tel, address, email]) + '\n'
            fp.write(line)


def output(filename):
    with codecs.open(filename, encoding='utf-8') as fp:
        for line in fp:
            line = line.split(',')
            for i in line:
                print(i, end=',')
            print()


if __name__ =='__main__':
    filename = 'information.txt'
    mains(filename)
    output(filename)


with codecs.open(filename,'w','uty-8')as fp:

改为
with codecs.open(filename,'w','utf-8')as fp: