前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
python中文件的创建与读写
实例-利用文件读写创建一个包
任务
- 读取一个文件,并去除文件中每行数据的首尾空格及空字符串
- 利用文件读写创建一个包(如果包已创建则抛出异常),并且将读取到的内容写入到包的
__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
文件中写入处理后的读取内容。
读取时处理:去除了读取到的内容的首位空格及空字符串
写入时处理:每行自动添加换行符(如果已有换行符则无需添加)
读取的文件:
写入的文件: