上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

python-基础篇-文件-py脚本

guduadmin271月前

文章目录

  • 文件的读操作
    • 代码
    • 效果
    • 按行读取文件
      • 代码
      • 效果
      • 模拟读取大文件
        • 代码
        • 效果
        • 改版
        • 二进制方式操作文件
          • 代码
          • 效果
          • 文件备份
            • 代码
            • 效果
            • 优化
            • 文件和目录的操作
              • 代码
              • 效果
              • 批量修改文件名
                • 代码
                • 效果
                • 学生管理系统文件版
                  • 代码
                  • 效果

                    文件的读操作

                    代码

                    # 1. 打开文件
                    f = open('a.txt', 'r', encoding='utf-8')
                    # 2. 读写文件 文件对象.read(n)  n 一次读取多少字节的内容,默认不写,读取全部内容
                    buf = f.read(3)
                    print(buf)  # 123
                    print('-'*30)
                    buf = f.read(3)  #
                    print(buf)
                    # 3. 关闭文件
                    f.close()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第1张

                    python-基础篇-文件-py脚本,在这里插入图片描述,第2张

                    python-基础篇-文件-py脚本,在这里插入图片描述,第3张

                    按行读取文件

                    代码

                    f = open('a.txt', 'r', encoding='utf-8')
                    # f.readline()  # 一次读取一行的内容, 返回值是读取到的内容(str)
                    # buf = f.readline()
                    # f.readlines()  # 按行读取,一次读取所有行,返回值是列表, 列表中的每一项是一个字符串,即一行的内容
                    buf = f.readlines()
                    print(buf)
                    buf = [i.strip() for i in buf]
                    print(buf)
                    f.close()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第4张

                    模拟读取大文件

                    代码

                    f = open('a.txt', 'r', encoding='utf-8')
                    while True:
                        buf = f.readline()
                        if buf:  # if len(buf) > 0   容器,可以直接作为判断条件,容器中有内容,为True,没有数据是False
                            print(buf, end='')
                        else:
                            # 文件读完了
                            break
                    f.close()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第5张

                    改版

                    f = open('b.txt', 'r', encoding='utf-8')
                    while True:
                        buf = f.read(5)  # f.read(4096)
                        if buf:
                            # print(buf, end='')
                            print(buf)
                        else:
                            break
                    f.close()
                    

                    python-基础篇-文件-py脚本,在这里插入图片描述,第6张

                    二进制方式操作文件

                    代码

                    f = open('c.txt', 'wb')
                    f.write('你好'.encode())   # encode() 将str 转换为二进制格式的字符串
                    f.close()
                    f1 = open('c.txt', 'rb')
                    buf = f1.read()
                    print(buf)
                    print(buf.decode())
                    f1.close()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第7张

                    python-基础篇-文件-py脚本,在这里插入图片描述,第8张

                    文件备份

                    代码

                    # 1. 用只读的方式,打开文件
                    f = open('a.txt', 'rb')
                    # 2. 读取文件内容
                    buf = f.read()
                    # 3. 关闭文件
                    f.close()
                    # 4. 只写的方式,打开新文件
                    f_w = open('a[备份].txt', 'wb')
                    # 5. 将 第 2 步读取的内容写入新文件
                    f_w.write(buf)
                    # 6. 关闭新文件
                    f_w.close()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第9张

                    python-基础篇-文件-py脚本,在这里插入图片描述,第10张

                    优化

                    file_name = input('请输入要备份的文件名')
                    # 1. 用只读的方式,打开文件
                    f = open(file_name, 'rb')
                    # 2. 读取文件内容
                    buf = f.read()
                    # 3. 关闭文件
                    f.close()
                    # 根据原文件名,找到文件后缀和文件名
                    index = file_name.rfind('.')
                    # 后缀  file_name[index: ]
                    # 新文件名
                    new_file_name = file_name[:index] + '[备份]' + file_name[index:]
                    print(new_file_name)
                    # 4. 只写的方式,打开新文件
                    f_w = open(new_file_name, 'wb')
                    # 5. 将 第 2 步读取的内容写入新文件
                    f_w.write(buf)
                    # 6. 关闭新文件
                    f_w.close()
                    

                    文件和目录的操作

                    代码

                     
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第11张

                    报以上错误,需要在根目录下创建test文件夹

                    python-基础篇-文件-py脚本,在这里插入图片描述,第12张

                    python-基础篇-文件-py脚本,在这里插入图片描述,第13张

                    批量修改文件名

                    代码

                    import os
                    def create_files():
                        for i in range(10):
                            file_name = 'test/file_' + str(i) + '.txt'
                            print(file_name)
                            f = open(file_name, 'w')
                            f.close()
                    def create_files_1():
                        os.chdir('test')
                        for i in range(10, 20):
                            file_name = 'file_' + str(i) + '.txt'
                            print(file_name)
                            f = open(file_name, 'w')
                            f.close()
                        os.chdir('../')  # ../ 上一级目录
                    def modify_filename():
                        os.chdir('test')
                        buf_list = os.listdir()
                        # print(buf_list)
                        for file in buf_list:
                            new_file = 'py43_' + file
                            os.rename(file, new_file)
                        os.chdir('../')
                    def modify_filename_1():
                        os.chdir('test')
                        buf_list = os.listdir()
                        # print(buf_list)
                        for file in buf_list:
                            num = len('py43_')
                            new_file = file[num:]
                            os.rename(file, new_file)
                        os.chdir('../')
                    # create_files()
                    # create_files_1()
                    # modify_filename()
                    modify_filename_1()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第14张

                    学生管理系统文件版

                    代码

                    import os
                    # 定义学生列表,保存所有的学生信息
                    stu_list = []
                    def show_menu():
                        print('1. 添加学生')
                        print('2. 删除学生')
                        print('3. 修改学生信息')
                        print('4. 查询单个学生信息')
                        print('5. 查询所有的学生信息')
                        print('6. 退出系统')
                    def insert_student():
                        # 1. 通过 input 函数获取学生的信息, 姓名, 年龄, 性别
                        name = input('请输入学生名字:')
                        # [{}, {}, {}]  判断的是字典中的 value 是否存在
                        for stu in stu_list:
                            if stu['name'] == name:
                                print('----------学生信息存在---------')
                                return  # 结束函数的执行
                        age = input('请输入学生年龄:')
                        gender = input('请输入学生性别:')
                        # 2. 将学生信息转换为字典进行保存
                        stu_dict = {'name': name, 'age': int(age), 'gender': gender}
                        # 3. 将这个学生字典添加的列表中
                        stu_list.append(stu_dict)
                        print('==============学生信息添加成功====================')
                    def remove_student():
                        # 1. 使用 input 获取要删除 /修改/查询 的学生姓名
                        name = input('请输入要操作的学生的名字:')
                        # 2. 判断学生信息是否存在
                        for stu in stu_list:
                            if stu['name'] == name:
                                # 3. 学生存在,对学生进行 删除 /修改/查询 操作
                                stu_list.remove(stu)
                                # return
                                break
                        # 4. 学生信息不存在,直接结束
                        else:
                            print('***********该学生信息不存在,无法删除**************')
                    def modify_student():
                        # 1. 使用 input 获取要删除 /修改/查询 的学生姓名
                        name = input('请输入要操作的学生的名字:')
                        # 2. 判断学生信息是否存在
                        for stu in stu_list:
                            if stu['name'] == name:
                                # 3. 学生存在,对学生进行 删除 /修改/查询 操作
                                stu['age'] = int(input('请输入新的年龄:'))
                                # return
                                break
                        # 4. 学生信息不存在,直接结束
                        else:
                            print('***********该学生信息不存在,无法修改**************')
                    def search_student():
                        # 1. 使用 input 获取要删除 /修改/查询 的学生姓名
                        name = input('请输入要操作的学生的名字:')
                        # 2. 判断学生信息是否存在
                        for stu in stu_list:
                            if stu['name'] == name:
                                # 3. 学生存在,对学生进行 删除 /修改/查询 操作
                                print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}')
                                # return
                                break
                        # 4. 学生信息不存在,直接结束
                        else:
                            print('***********该学生信息不存在**************')
                    def show_all_info():
                        if len(stu_list) > 0:
                            for stu in stu_list:
                                print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}')
                                # print(stu)
                        else:
                            print('目前没有学生信息')
                    def save():
                        # 1. 打开文件
                        f = open('student.txt', 'w', encoding='utf-8')
                        f.write(str(stu_list))
                        f.close()
                    def load_file():
                        global stu_list
                        if os.path.exists('student.txt'):
                            f = open('student.txt', 'r', encoding='utf-8')
                            buf = f.read()
                            if buf:
                                stu_list = eval(buf)
                            f.close()
                    def main():
                        load_file()  # 只执行一次
                        while True:
                            show_menu()
                            opt = input('请输入用来选择的操作编号:')
                            if opt == '1':
                                # print('1. 添加学生')
                                insert_student()
                            elif opt == '2':
                                # print('2. 删除学生')
                                remove_student()
                            elif opt == '3':
                                # print('3. 修改学生信息')
                                modify_student()
                            elif opt == '4':
                                # print('4. 查询单个学生信息')
                                search_student()
                            elif opt == '5':
                                # print('5. 查询所有的学生信息')
                                show_all_info()
                            elif opt == '6':
                                print('欢迎下次使用本系统......')
                                save()
                                break
                            else:
                                print('输入有误,请再次输入')
                                continue
                            input('...... 回车键继续操作.......')
                    main()
                    

                    效果

                    python-基础篇-文件-py脚本,在这里插入图片描述,第15张

网友评论

搜索
最新文章
热门文章
热门标签
 
 1988年属什么生肖的  梦到结婚是什么意思周公解梦  梦见上课睡觉