完成对open函数的包装,且封装成工具类
							parent
							
								
									415ac25a31
								
							
						
					
					
						commit
						b8560a34e6
					
				|  | @ -0,0 +1,46 @@ | |||
| import os | ||||
| 
 | ||||
| 
 | ||||
| class ModeErrorException(Exception): | ||||
|     def __init__(self, error_info): | ||||
|         super().__init__(self) | ||||
|         self.error_info = error_info | ||||
| 
 | ||||
|     def __str__(self): | ||||
|         return self.error_info | ||||
| 
 | ||||
| 
 | ||||
| class FileOpen: | ||||
|     def __init__(self): | ||||
|         pass | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def read_only(path, mode='r'): | ||||
|         if mode not in ['r', 'r+', 'rb', 'rt', 'rb+', 'rt+']: | ||||
|             raise ModeErrorException('the input mode is wrong') | ||||
|         my_dir = os.path.dirname(path)  # 获得路径的目录 | ||||
|         if not os.path.exists(my_dir):  # 判断文件的所有父文件夹是否存在 | ||||
|             os.makedirs(my_dir)  # 创建所有父文件夹 | ||||
|         # 读文件需要判断文件是否存在,不存在则创建 | ||||
|         if not os.path.exists(path): | ||||
|             open(path, mode) | ||||
|         return open(path, mode) | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def write_able(path, mode='w'): | ||||
|         if mode not in ['w', 'w+', 'wb', 'wt', 'wb+', 'wt+']: | ||||
|             raise ModeErrorException('the input mode is wrong') | ||||
|         my_dir = os.path.dirname(path)  # 获得路径的目录 | ||||
|         if not os.path.exists(my_dir):  # 判断文件的所有父文件夹是否存在 | ||||
|             os.makedirs(my_dir)  # 创建所有父文件夹 | ||||
|         return open(path, mode) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     wf = FileOpen.write_able(r"D:\Workspace\gitcode\EnglishPal\app\static\test.txt") | ||||
|     wf.write("asdasdasd") | ||||
|     wf.close() | ||||
| 
 | ||||
|     rf = FileOpen.read_only(r"D:\Workspace\gitcode\EnglishPal\app\static\test.txt") | ||||
|     for line in rf.readlines(): | ||||
|         print(line) | ||||
		Loading…
	
		Reference in New Issue