def write_records(records, properties=None): """This method takes a list of named tuple records and a properties file and produces an output file containing the records. The properties that are necessary are: field_names, and either field_start_positions or a field_separator. Optionally, an output file should be specified. """ try: file_name = properties['output_file'][0] except: file_name = get_name(records[0]) + '_' + get_timestamp() try: fields = properties['field_names'] except: fields = records[0]._fields try: fields = zip(fields, properties['field_start_positions'], properties['field_end_positions'], properties['field_justify']) write_fixed_length_strings(file_name, records, fields) except: print 'Trying to write records as delimited strings.' delimiter = translate_delimiter(properties['field_separator'][0]) print delimiter, ' (delimiter)' write_delimited_strings(file_name, delimiter, records, fields) return True