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