python(文件相关练习)

Python 文件 text.py 中包含非 UTF-8 编码的字符,而 Python 默认使用 UTF-8 编码来解析文件。因此,您需要在文件的开头声明文件使用的编码,以便 Python 正确地解析该文件。 

# -*- coding: utf-8 -*-
import random#随机数
import os
import os.path#os的子模块

#函数式编程
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)
            else:
                filename+=str(i)
            #拼接类别
            filename+='-'+random.choice(lst)
            #拼接识别码
            s=''
            for j in range(9):#循环的作用是次数
                s+=random.choice(code)
            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')

    #开始创建文件
    #print(create_filename())


    # print(create_filename())

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()))}\n'
        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.strip())  # 使用 strip 去除换行符

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

 

 

def find_answer(question):
    with open('log.txt', 'r', encoding='utf-8') as file:
        while True:
            line = file.readline()
            if line == '':
                break

            parts = line.split('|')
            if len(parts) >= 2:  # 检查分割后的列表是否有至少两个元素
                keyword, reply = parts[0], parts[1].strip()  # 去除换行符
                if keyword in question:
                    return reply
            else:
                print(f"请换一个关键词:{line}")

    return False

if __name__ == '__main__':
    question = input('HI,XXX,请告诉我你需要的商品类型:')
    while True:
        if question == 'bye':
            break
        else:
            # 开始查找要回复的答案
            reply = find_answer(question)
            if reply is False:
                question = input('请换一个关键词:')
            else:
                print(reply)
                question = input('还有什么需要的吗?')
# HI,XXX,请告诉我你需要的商品类型:辣条
# 请换一个关键词:
# 
# 请换一个关键词:零食
# 薯片,辣条,凤爪,曲奇
# 还有什么需要的吗?bye
# 
# Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值