• Python基础入门篇【44】--文件读写实例:读取一个文件,并将其中的内容写入到创建的包里


    前言
    作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
    💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
    💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
    如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

    python中文件的创建与读写

    实例-利用文件读写创建一个包

    任务

    1. 读取一个文件,并去除文件中每行数据的首尾空格及空字符串
    2. 利用文件读写创建一个包(如果包已创建则抛出异常),并且将读取到的内容写入到包的__init__.py文件,并且自动加入换行符

    代码:

    # coding:utf-8
    
    import os
    
    
    class CreatePackage(object):
        def __init__(self, path, mode='w', is_return=True):  # 自动换行默认为真
            self.path = path
            self.mode = mode
            self.is_return = is_return
    
        def creat(self, message):
            if os.path.exists(self.path):  # 判断这个路径是否存在,不存在则抛自定义异常
                raise Exception('%s已经存在不可创建' % self.path)
            os.makedirs(self.path)  # 创建文件夹
    
            init_path = os.path.join(self.path, '__init__.py')  # 定义一个路径__init__.py(包中必须含的文件)
            try:
                f = open(init_path, self.mode)
                if self.is_return:  # 判断是否需要自动换行,是的话则将写入的内容拼接\n
                    for temp in message:
                        if not temp.endswith('\n'):  # 二次判断传入的message的结尾是否已经包含换行符
                            temp = '%s\n' % temp
                            f.write(temp)  # 写入(w模式没有文件会创建文件然后写入)
            except Exception as e:
                return e
            finally:
                f.close()  # 将close写在finally中,无论在写的过程中是否出现异常,都会调用close函数关闭文件
    
    
        def read_pacakge(self, is_strip=True):
            with open(self.path, self.mode, encoding='utf-8') as f:
                data = f.readlines()
                result = []
                for temp in data:
                    if is_strip:
                        temp = temp.strip()
                        if temp != '':
                            result.append(temp)
    
            return result
    
    
    if __name__ == '__main__':
        read_test1 = CreatePackage(path='time_test.py', mode='r')
        resultdata = read_test1.read_pacakge()
        current_path = os.getcwd()
        path = os.path.join(current_path, 'test1')
        package_1 = CreatePackage(path=path)
        package_1.creat(resultdata)   # 将读取的内容传入
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    运行之后,会创建一个包,并在__init__.py文件中写入处理后的读取内容。

    读取时处理:去除了读取到的内容的首位空格及空字符串

    写入时处理:每行自动添加换行符(如果已有换行符则无需添加)

    读取的文件:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AnzlZnWp-1660191318752)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220811120341028.png)]

    写入的文件:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JoFJqyCd-1660191318753)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220811120435582.png)]

  • 相关阅读:
    部署项目半途而废后续
    armv8 exception levels
    Java while dowhile语法
    数据结构 - 二叉树刷题
    上门预约洗鞋小程序开发;
    消除el-image图片周围间隙
    web前端期末大作业:美食网站设计与实现——HTML+CSS+JavaScript休闲美食餐饮公司网站静态模板(6个页面)
    Altium Designer20 交叉选择模式
    c++的数据类型的引用(三种方式有一些区别)
    Pinely Round 1 (Div. 1 + Div. 2)
  • 原文地址:https://blog.csdn.net/weixin_44629511/article/details/126282859