Python学习 第11章实战

实战一:批量创建文件

需求:在指定路径下批量创建3000份文本文件,文件名格式为序号_物资类别_用户识别码组成

1)序号从0001到3000

2)物资类别包括:水果、烟酒、粮油、肉蛋、蔬菜

3) 用户识别码为9位的随机十六进制数码

import random
import os
import os.path


#创建文件名
def create_filename():
    filename_lst = []
    lst = ['水果', '烟酒', '粮油', '肉蛋', '蔬菜']
    code = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
    for i in range(1, 3001):
        filename = ''
        if i < 10:
            filename += '000' + str(i)
        elif i < 100:
            filename += '00' + str(i)
        elif i < 1000:
            filename += '0' + str(i)
        else:
            filename += str(i)
        #拼接文件名 0000_商品名称
        filename += '_' + random.choice(lst)
        s = ''
        for j in range(9):
            s += random.choice(code)
        #拼接文件名 _0000_商品名称__9位编码
        filename += '_' + s
        filename_lst.append(filename)
    return filename_lst


def create_file(filename):
    with open(filename, 'w') as file:
        pass


if __name__ == '__main__':
    path = './data'
    if not os.path.exists(path):
        os.mkdir(path)
    lst = create_filename()
    for item in lst:
        create_file(os.path.join(path, item) + '.txt')

import os
import os.path
def mkdirs(path,num):
    for item in range (1,num+1):
        os.mkdir(path+'/'+str(item))

if __name__ == '__main__':
    path='./newdir'
    if not os.path.exists(path):
        os.mkdir(path)
    num=eval(input('请输入要创建的目录个数:'))
    mkdirs(path,num)

import time
def show_info():
    print('输入提示数字,执行相应的操作:0.退出 1.查看登录日志')

#记录日志
def write_loginfo(username):
    with open('log.txt','a',encoding='utf-8') as file:
        s=f'用户名{username},登录时间:{time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))}'
        file.write(s)
        file.write('\n')

#读取日志
def read_loginfo():
    with open('log.txt','r',encoding='utf-8') as file:
        while True:
            line=file.readline()
            if line=='':
                break
            else:
                print(line)

if __name__ == '__main__':
    #write_loginfo('admin')
    username=input('请输入用户名:')
    pwd=input('请输入密码:')
    if username=='admin' and pwd=='admin':
        print('登录成功')
        write_loginfo(username)
        show_info()
        num=eval(input('请输入要操作的数字'))
        while True:
            if num==0:
                print('退出成功')
                break
            elif num==1:
                print('查看登录日志')
                read_loginfo()
                show_info()
            else:
                print('对不起,您输入的数字有误。')
                show_info()
            num=eval(input('请输入要操作的数字:'))
    else:
        print('用户名或密码不正确')

​​​​​​​

def find_answer(question):
    with open('replay.txt','r',encoding='utf-8') as file:
        while True:
            line=file.readline()
            if line=='':
                break
            #字符串分割
            keyword=line.split('|')[0]
            reply=line.split('|')[1]
            if keyword in question:
                return reply
    return False

if __name__ == '__main__':
    question=input('Hi,XXX你好,小蜜在此等候主人很久了,有什么烦恼?')
    while True:
        if question=='bye':
            break
        else:
            reply=find_answer(question)
            if reply==False:
                question=input('小蜜不知道你在说什么,您可以问一些关于订单、物流、支付方面的问题,退出请输入bye')
            else:
                print(reply)
                question=input('小主,您还可以䦣一些关于订单、物流、支付方面的问题。')
    print('小主再见')

注:本文中的内容及实例均出自@Python_子木的视频

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值