说明
本文通过 反射机制、隐藏类属性,实现Base64的编码和解码
代码展示
import base64
class Base64_conversion_cls:
def __init__(self):
# self.__data_path = input('data_path请输入 >>> ')
# self.__save_data_path = input('请输入save_data_path >>> ')
self.__conversion = {
'1': 'b64encode',
'2': 'b64decode'
}
def __Data_conversion_func(self, data_path, save_data_path):
'''
数据转换函数
@param data_path: 数据的路径
@param save_data_path: 转换后的数据的保存路径
@return:
'''
# 第一步: 打开文件
with open(data_path, 'rb') as file_obj:
f_data = file_obj.read()
# 第二步: 通过反射机制,实现base64的编码和解码
data = getattr(base64, self.__conversion[self.input_data])(f_data)
# 第三步: 保存转换后的文件
with open(save_data_path, 'wb') as file_obj:
file_obj.write(data)
def Ext_interface_func(self):
print('1 -- base64编码, 2 - base64解码')
self.input_data = input('请输入 >>> ')
data_path = input('请输入data_path >>> ')
save_data_path = input('请输入save_data_path >>> ')
self.__Data_conversion_func(data_path, save_data_path)
if __name__ == '__main__':
Base64_conversion_cls().Ext_interface_func()
核心说明
代码的核心是在第二步,通过反射机制获取不同的编码和解码功能