def rename_file(src_file, dst_file): if not is_file_exists(src_file): LogUtils.error_print(f"file: {src_file} not exist") return False remove_file(dst_file) os.rename(src_file, dst_file) return True
def rmdir(path): """ 删除目录,同时删除目录下的文件夹和文件 :param path: 文件目录 :return: None """ # 去除首位空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip("\\") # 判断路径是否存在 # 存在 True # 不存在 False is_exist = os.path.exists(path) if not is_exist: LogUtils.debug_print(f"{path} 不存在,无需删除") return try: # os.rmdir(path) shutil.rmtree(path) except Exception as err: LogUtils.error_print(err)
def config_write_data(file, section, option, value: str, reset=False): # 先创建文件(如果文件存在,则不修改) create_file(file) parser = configparser.ConfigParser() if not reset: # 先读取原有的配置,否则写的时候会直接将原内容清空 parser.read(file, encoding="utf-8-sig") if section not in parser.sections(): try: # 增加Section,如果原来有section ,则不会可能返回错误 parser.add_section(section) except Exception as err: LogUtils.info_print(f"write config file:{file}, section={section},option={option},result:{err}") if option != '': try: # 写入value parser.set(section, option, value) except Exception as err: LogUtils.error_print(f"write config file:{file}, section={section},option={option},result:{err}") return False with open(file, "w+", encoding="utf-8-sig") as fd: parser.write(fd) return True
def config_read_sections(file): """ 获取配置某个Fields下的全部Sections :param file:文件路径 :return: sections """ section_list = [] if not os.path.isfile(file): # 无文件时,返回空 LogUtils.error_print(f"config_read_sections, no file{file}") return section_list parser = configparser.ConfigParser() parser.read(file, encoding="utf-8-sig") section_list = parser.sections() return section_list
def mkdir(path, reset=False): """ 创建文件夹 :param path:文件夹路径 :param reset:如果存在,需要先删除 :return: """ # 去除首位空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip("\\").rstrip('/') # 需要复位,则先删除 if reset: try: rmdir(path) time.sleep(1) os.makedirs(path) LogUtils.info_print(f"{path} 创建成功!", 5) except Exception as err: LogUtils.error_print(err) return # 判断路径是否存在 # 存在 True # 不存在 False is_exist = os.path.exists(path) # 判断结果 if not is_exist: # 如果不存在则创建目录 # 创建目录操作函数 os.makedirs(path) LogUtils.info_print(f" {path} 创建成功!", 5) return True else: # 如果目录存在则不创建,并提示目录已存在 LogUtils.debug_print(f" {path} 目录已存在!", 5) return False
def config_read_options(file, section): """ 获取配置某个Fields下的全部Options :param file:文件路径 :param section:在配置文件中的章节 :return: list 该section下的所有章节 """ option_list = [] if not os.path.isfile(file): # 无文件时,返回空 LogUtils.error_print(f"no file: {file}") return option_list parser = configparser.ConfigParser() LogUtils.info_print(f"read cfg file = {file}, section = {section}", 4) parser.read(file, encoding="utf-8-sig") try: option_list = parser.options(section=section) except Exception as err: LogUtils.error_print(f"get config file:{file}, section:{section},result:{err}") return option_list
def config_read_data(file, section, option): """ 获取配置文件中的内容 :param file:文件路径 :param section:在配置文件中的章节 :param option:在配置的文件中option名称 :return: """ if not os.path.isfile(file): # 无文件时,返回空 LogUtils.warning_print(f"no file,{file}") return '' parser = configparser.ConfigParser() LogUtils.info_print(f"read cfg file = {file}, section = {section}, option = {option}", 4) parser.read(file, encoding="utf-8-sig") raw_data = '' try: raw_data = parser.get(section=section, option=option) except Exception as err: LogUtils.error_print(f"get config file:{file}, section={section},option={option},result:{err}") return raw_data
def __del__(self): """ 对象删除时,恢复显示及提示处理 如果文件通过程序自动打开,则再自动关闭 :return: """ if self.app is None: return if self.auto_open and self.wb is not None: LogUtils.debug_print( f"File {self.file_path} opened by Python, begin to close... ", 5) self.wb.close() self.wb = None try: self.app.display_alerts = True self.app.screen_updating = True self.app.quit() except Exception as err: LogUtils.error_print(err) self.app = None