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 ;;
You could pass additional mode flag Open_append to open_out_gen function:
Open_append
open_out_gen
let _ = let oc = open_out_gen [Open_creat; Open_text; Open_append] 0o640 "a.txt" in output_string oc "append\n"; close_out oc