It's sounds like these fights get out of hand pretty quickly. You can stop that by not letting it happen from your end - you can't control what she does. However, you can help tame them by making sure they stay focused.
Do they arise from something not really related? If you find you're the first one to snap at your W, then it's your job to identify what's really bothering you. If she snaps first, then you need to encourage her to tell you what's really on her mind.
Stay focused on the issue. Do not allow other things to get thrown in - they can be discussed at another time.
To have these things going on for days is just not healthy. I was told that when a disagreement occurred with my X we should hold hands immediately. I know it can be the last thing you want to do, but it is much harder to throw nasty comments at someone if you're holding their hand.
Assess the issue. Is it really worth the amount of anger going into it, or is it being fueled by a bad day or moment? Acknowledge that.