python之生成随机数和字符串

最近看一个python的教学视频,视频里面有一个文本,一堆帐号,电话号码啥的,于是懒筋犯了,编辑假数据实在费劲,索性让这些数据自动生成

 

#coding:utf-8
 
import random
import sys

def stringList():
    str1 = []
    str3 = []
    for i in range(97, 123):     
        str1.append(chr(i))
    str2 = ''.join(str1)
    
    for i in range(65, 91):
        str3.append(chr(i))        
    str4 = ''.join(str3)    
    strall = str2 + str4
    
    return strall
 
n = int(input("Please input u number :").strip())
'''
def idList():
    x = 0
    x += 1  
    return x
'''
def nameList():
        a = random.randint(3,5)     
        name = ''.join(random.sample(stringList(), a))
        return name

def dePartment():
    list1 = ['IT', 'caiwu', 'xiaoshou']
    dpt = random.choice(list1)
    return dpt

def phoneList():
    num = '0123456789'
    phone = ''.join(random.choice(num) for i in range(11))
    return phone

#把所有生成的数据写入到文件
listfile = open('memberlist.txt', 'w')
listfile.write('id    name    department        phone\n')
listfile.close()

output = sys.stdout
with open('memberlist.txt', 'a+') as f:
    sys.stdout = f    
    for i in range(0, n):
        i += 1
        print('%-5d %-8s %-13s %s' % (i, nameList(), dePartment(), phoneList()))
    
    sys.stdout = output
    print('Wrote a total of %d rows of data' % i)

 

输出结果如下

 

文件展示如下

 

END!

 

posted @ 2016-07-04 11:53  知_行  阅读(498)  评论(0编辑  收藏  举报