def append_file_contents(file_path, contents): """ Append 'contents' to 'file_path'. """ bytes_to_write = encode_for_writing_to_file(contents) try: with open(file_path, "ab+") as F: F.write(bytes_to_write) except EnvironmentError as e: logger.error_with_prefix( 'AppendFileContents', 'Appending to file ' + file_path + ' Exception is ' + str(e)) return None return 0
def set_file_contents(file_path, contents): """ Write 'contents' to 'file_path'. """ if type(contents) == str: contents = contents.encode('latin-1', 'ignore') try: with open(file_path, "wb+") as F: F.write(contents) except OSError as e: logger.error_with_prefix( 'SetFileContents', 'Writing to file ' + file_path + ' Exception is ' + str(e)) return None return 0
def replace_file_with_contents_atomic(filepath, contents): """ Write 'contents' to 'filepath' by creating a temp file, and replacing original. """ handle, temp = tempfile.mkstemp(dir=os.path.dirname(filepath)) if type(contents) == str: contents = contents.encode('latin-1') try: os.write(handle, contents) except OSError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Writing to file ' + filepath + ' Exception is ' + str(e)) return None finally: os.close(handle) try: os.rename(temp, filepath) return None except OSError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Renaming ' + temp + ' to ' + filepath + ' Exception is ' + str(e) ) try: os.remove(filepath) except OSError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Removing ' + filepath + ' Exception is ' + str(e)) try: os.rename(temp, filepath) except OSError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Removing ' + filepath + ' Exception is ' + str(e)) return 1 return 0
def get_file_contents(file_path, as_bin=False): """ Read and return contents of 'file_path'. """ mode = 'r' if as_bin: mode += 'b' try: with open(file_path, mode) as F: contents = F.read() return contents except OSError as e: logger.error_with_prefix( 'GetFileContents', 'Reading from file ' + file_path + ' Exception is ' + str(e)) return None
def append_file_contents(file_path, contents): """ Append 'contents' to 'file_path'. """ if type(contents) == str: if sys.version_info[0] == 3: contents = contents.encode('latin-1').decode('latin-1') elif sys.version_info[0] == 2: contents = contents.encode('latin-1') try: with open(file_path, "a+") as F: F.write(contents) except OSError as e: logger.error_with_prefix( 'AppendFileContents', 'Appending to file ' + file_path + ' Exception is ' + str(e)) return None return 0
def replace_file_with_contents_atomic(filepath, contents): """ Write 'contents' to 'filepath' by creating a temp file, and replacing original. """ handle, temp = tempfile.mkstemp(dir=os.path.dirname(filepath)) bytes_to_write = encode_for_writing_to_file(contents) try: os.write(handle, bytes_to_write) except EnvironmentError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Writing to file ' + filepath + ' Exception is ' + str(e)) return None finally: os.close(handle) try: os.rename(temp, filepath) return None except EnvironmentError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Renaming ' + temp + ' to ' + filepath + ' Exception is ' + str(e)) try: os.remove(filepath) except EnvironmentError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Removing ' + filepath + ' Exception is ' + str(e)) try: os.rename(temp, filepath) except EnvironmentError as e: logger.error_with_prefix( 'ReplaceFileContentsAtomic', 'Removing ' + filepath + ' Exception is ' + str(e)) return 1 return 0