import os import re import errno def write_file(path, data): # In case data is None, return immediately if data is None: return wdata = data.rstrip() + "\n" with open(path, "w") as f: f.write(wdata) def append_file(path, data): # In case data is None, return immediately if data is None: return wdata = data.rstrip() + "\n" with open(path, "a") as f: f.write(wdata) def read_file(path): data = None with open(path) as f: data = f.read() return data def remove_from_file(path, data): # In case data is None, return immediately if data is None: return try: rdata = read_file(path) except IOError as e: # if file does not exit, just quit, otherwise raise an exception if e.errno == errno.ENOENT: return else: raise lines = rdata.splitlines() rmdata = data.strip().splitlines() for l in rmdata: for c in range(0, lines.count(l)): i = lines.index(l) del(lines[i]) write_file(path, "\n".join(lines))