forked from mrlan/EnglishPal
				
			完成对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