SOAP Request for Add Attachment to existing incident

I am trying to add an attachment for existing incident via SOAP request. 

I tried this,

import requests
import json
import re
import sys
import xml.etree.ElementTree as ET
from pprint import pprint
import sys
import xml.dom.minidom as minidom
class Add_Attachment(Action):
def run(self, WSDL_URL,USERNAME,PASSWORD,TICKET_NUMBER):
url=WSDL_URL
headers = {'Content-Type' : 'text/xml', 'SOAPAction': 'Update'}
body = '<?xml version = "1.0" encoding = "UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.hp.com/SM/7" xmlns:com="http://schemas.hp.com/SM/7/Common" xmlns:xm="http://www.w3.org/2005/05/xmlmime"><soapenv:Header/><soapenv:Body><ns:UpdateIncidentRequest attachmentInfo="true" attachmentData="true" ignoreEmptyElements="true"><ns:model query=""><ns:keys><ns:IncidentID type="String" mandatory="" readonly="">' TICKET_NUMBER '</ns:IncidentID></ns:keys><ns:instance query="" uniquequery="" recordid="" updatecounter=""><JournalUpdates><JournalUpdates>Attachment done by HiveCenter</JournalUpdates></JournalUpdates><ns:attachments><com:attachment name="sample.txt" action="add" href="cid:/tmp/text1.txt"></com:attachment></ns:attachments></ns:instance></ns:model></ns:UpdateIncidentRequest></soapenv:Body></soapenv:Envelope>'
response = requests.post(url,data=body,headers=headers,auth=(USERNAME, PASSWORD))
print(str(response.content)

It is adding the attachment with the given name(simple.txt) but content is not decoded properly. I tried to take the file from linux server. i am not sure how to pass the file path/file content exactly. Please help us on this.