为什么只输出了一行数据

来源:1-5 文件的读操作

_WHOAMI_

2022-03-31 09:59:39

# coding:utf-8相关截图:



import os

'''自定义函数创建文件'''

def create_package(path):  # 首先自定义一个函数并传入形参'path'也就是路径,必须知道在哪个路径下创建文件或文件夹
    if os.path.exists(path):  # 第二步使用if语句和exists(path)函数判断这个文件或路径是否存在
        raise Exception('%s 错误!! 文件已存在' % path)   # 如果存在就抛出我们自定义的错误
    os.makedirs(path)  # 如果不存在就在此路径下创建文件
    init_path = os.path.join(path, '__init__.py')  # 并在此路径下拼接一个__init__.py的脚本
    f = open(init_path, 'w', encoding='utf-8')   # 使用open函数打开并创建__init__.py文件进行读写操作
    f.write('# coding:utf-8\n')  # 用write函数在.py文件中写入# coding:utf-8头注释
    f.close()  # 关闭并保存文件
'''在写入文件时都要使用\n来进行换行,为了避免这种麻烦我们定义一个类'''
class Open(object):   #  自定义一个类
    def __init__(self, path, mode='w', is_return=True):  # 定义构造函数传入形参path,以及两个默认参数
        self.path = path
        self.mode = mode
        self.is_return = is_return

    def write(self, message):  # 定义write函数传入形参message

        f = open(self.path, mode=self.mode, encoding='utf-8')  #
        if self.is_return:
            message = '%s\n' % message
        try:
            f.write(message)
        except Exception as e:
            print(e)
        finally:  # 使用finally强制执行close函数可以避免因文件不能正常关闭而导致的错误
            f.close()

    def writelines(self, message):
        f = open(self.path, mode=self.mode, encoding='utf-8')
        if self.is_return:
            message = '%s\n' % message
            try:
                f.writelines(message)
            except Exception as e:
                print(e)
            finally:  # 使用finally强制执行close函数可以避免因文件不能正常关闭而导致的错误
                f.close()

    def read(self, is_strip=True):
        result = []
        with open(self.path, mode=self.mode, encoding='utf-8') as f:  # 使用with关键字可以避免忘记使用close函数而引发的错误
            date = f.readlines()
        for lien in date:
            if is_strip == True:
                item = lien.strip()
                if item != '':
                    result.append(item)
            else:
                if lien != '':
                    result.append(lien)
            return result





if __name__ == '__main__':
    current_path = os.getcwd()  # 定义一个变量并获取路径且赋值给这个变量
    #path = os.path.join(current_path, 'test1')  # 使用以上路径赋值给形参path 并在此路径下穿件一个名为'test1'的文件夹用来存放__init__.py的文件
    #create_package(path)  # 传入实参启动函数

   # open_path = os.path.join(current_path, 'b.txt')
    #o = Open(open_path)
    #o.write('我正在定义一个可以批量添加的函数')

    #o2 = Open(open_path, mode='a')
    #o2.writelines('这是一个批量添加函数, 不知道能不能成功')

    o3 = Open('python_package/时间包time.py ', mode='r')
    date = o3.read()
    print(date)
    
    时间包.py里有很多代码我执行read函数时只输出了一行数据

问题描述:

时间包.py里有很多代码我执行read函数时只输出了一行数据


相关截图:

https://img.mukewang.com/climg/62450af80937abe207190138.jpg

写回答

1回答

时间,

2022-03-31

同学,你好!同学将return语句放在了for循环里边,执行了return语句后for循环就结束了,因此只有一行数据。

return语句应放在for循环外边,循环结束后再返回result的值

https://img.mukewang.com/climg/62450e9209ed537709160510.jpg

祝学习愉快!

0

0 学习 · 4469 问题

查看课程