为什么只输出了一行数据
来源: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函数时只输出了一行数据
相关截图:

1回答
同学,你好!同学将return语句放在了for循环里边,执行了return语句后for循环就结束了,因此只有一行数据。
return语句应放在for循环外边,循环结束后再返回result的值

祝学习愉快!
相似问题