def read_str_from_file(file_path, default='', raise_exception=False): """ Read string content from file :param file_path: File path :param default: Default return value if any exception occur :param raise_exception: Raise exception to caller if True else just return default value :return: String content of the file """ try: with open(file_path, 'r') as f: value = f.read().strip() except (ValueError, IOError) as e: if not raise_exception: value = default else: raise e return value def read_int_from_file(file_path, default=0, raise_exception=False): """ Read content from file and cast it to integer :param file_path: File path :param default: Default return value if any exception occur :param raise_exception: Raise exception to caller if True else just return default value :return: Integer value of the file content """ try: with open(file_path, 'r') as f: value = int(f.read().strip()) except (ValueError, IOError) as e: if not raise_exception: value = default else: raise e return value def write_file(file_path, content, raise_exception=False): """ Write the given value to a file :param file_path: File path :param content: Value to write to the file :param raise_exception: Raise exception to caller if True :return: True if write success else False """ try: with open(file_path, 'w') as f: f.write(str(content)) except (ValueError, IOError) as e: if not raise_exception: return False else: raise e return True