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)   # 将读取的内容传入

运行之后,会创建一个包,并在__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)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值