This answer may sound a bit tricky but here's the thing, both languages have existed in harmony so far without slaying the other so far, which implies neither is better than the other. Both have different purpose to fulfill. So putting one against the other is not going to help. Let me elaborate,
C is a low-level compiled language, whereas Python is a high-level interpreted. That means you'll probably need bulkier software on the system where you need to run your interpreted code. This plays an important role in small embedded systems like controllers or credit card size computers. C will win here if you talk about smaller embedded systems. Python does wonders on credit card computers like Raspberry Pi powered with linux.
Python has object oriented capabilities which C doesn't. So larger projects, Python will probably win. But again for larger projects that need keeping the code hidden from end user I don't think Python wins anymore.