title: Difference between __file__ and sys.argv[0]
body: <p>Is there any difference between:</p>
  
  <p><code>__file__</code></p>
  
  <p>and </p>
  
  <p><code>sys.argv[0]</code></p>
  
  <p>Because both seem to be doing the same thing: they hold the name of the script.</p>
  
  <p>If there is no difference, then why is it that <code>__file__</code> is used in almost all someplaces whereas I have never seen <code>sys.argv[0]</code> being used.</p>