Iif To Csv Converter Free ((top)) (2026)
# Remove ! and ^, replace tabs with commas sed 's/^!//' input.iif | sed 's/\^/,/g' | tr '\t' ',' > output.csv This does NOT handle split transactions. Only use for simple lists. 6. Validation Checklist After Conversion Always verify your CSV before using in another system:
# Detect delimiter (usually tab, but can be space or comma in old files) first_line = lines[0].strip() if '\t' in first_line: delimiter = '\t' elif ',' in first_line and not re.search(r'\d,\d', first_line): delimiter = ',' else: delimiter = ' ' # fallback iif to csv converter free
for line in lines: line = line.strip() if not line: continue # Remove IIF header markers (!, ^) if line.startswith('!'): line = line[1:] # remove ! # Replace ^ with delimiter (IIF uses ^ for repeated fields) line = line.replace('^', delimiter) # Split into fields fields = line.split(delimiter) # Identify transaction lines (TRNS) and split lines (SPL) if fields and fields[0] == 'TRNS': # Save previous transaction if exists if current_trans: output_rows.extend(current_trans) current_trans = [] transaction_id += 1 fields.insert(0, str(transaction_id)) # add group ID current_trans.append(fields) elif fields and fields[0] == 'SPL' and current_trans: fields.insert(0, str(transaction_id)) # same group ID current_trans.append(fields) else: # Header rows (ACCNT, CUST, VEND, etc.) - no grouping needed fields.insert(0, '0') # group ID 0 for non-transaction data output_rows.append(fields) # Remove
print(f"Converted input_file to output_file. Total rows: len(output_rows)") iif_to_csv('input.iif', 'output.csv') Total rows: len(output_rows)") iif_to_csv('input
output_rows = [] transaction_id = 0 current_trans = []
# Append last transaction if current_trans: output_rows.extend(current_trans)