Как сказал Медали, вы можете использовать регулярное выражение, чтобы получить нужные данные и правильно их разделить.Что-то вроде:
import re
pattern = r'app=(.*?),'
app = re.search(pattern, a).group(1)
вы могли бы получить список тех заголовков, которые вам нужны, и создать цикл for для шаблона, сохранив его в словаре, а затем записать это непосредственно в csv.
вам понадобится новая переменная csv_outfile или такая, и вы измените свои открытые переменные;
headers = ['app', 'receiverid', .... , 'appAction']
outfile = open(outputfile, mode='wb')
csv_outfile = csv.DictWriter(outfile, headers, delimiter = '|')
csv_outfile.writeheader()
for header in headers:
pattern = header + r'=(.*?),'
my_dict[header] = re.search(pattern, a).group(1)
csv_outfile.writerow(my_dict)
Я думаю, что это отвечает на ваши вопросы?