I can use the following function to overwrite a text file:
let writeFile ~filename:fn s = let oc = open_out fn in output_string oc s; close_out oc ;;
This is what I do:
let append_string path s = let chan = open_out_gen [Open_wronly; Open_creat] 0o666 path in let len = out_channel_length chan in begin seek_out chan len; output_string chan s; close_out chan; end