title: What is the Python equivalent of Perl's ucfirst() or s///e?
body: <p>I need to capitalize a string in Python, without also converting the rest of the string to lower-case. This seems trivial but I can't seem to find a simple way to do it in Python.</p>
  
  <p>Given a string like this:</p>
  
  <pre><code>"i'm Brian, and so's my wife!" 
  </code></pre>
  
  <p>In Perl I could do this:</p>
  
  <pre><code>ucfirst($string)
  </code></pre>
  
  <p>which would produce the result I need:</p>
  
  <pre><code>I'm Brian, and so's my wife!
  </code></pre>
  
  <p>Or with Perl's regular expression modifiers I could also do something like this:</p>
  
  <pre><code>$string =~ s/^([a-z])/uc $1/e;
  </code></pre>
  
  <p>and that would work ok too:</p>
  
  <pre><code>&gt; perl -l
  $s = "i'm Brian, and so's my wife!";
  $s =~ s/^([a-z])/uc $1/e;
  print $s;
  [Control d to exit]
  I'm Brian, and so's my wife!
  &gt;
  </code></pre>
  
  <p>But in Python, the str.capitalize() method lower-cases the whole string first:</p>
  
  <pre><code>&gt;&gt;&gt; s = "i'm Brian, and so's my wife!"
  &gt;&gt;&gt; s.capitalize()
  "I'm brian, and so's my wife!"
  &gt;&gt;&gt;
  </code></pre>
  
  <p>While the title() method upper-cases every word, not just the first one:</p>
  
  <pre><code>&gt;&gt;&gt; s.title()
  "I'M Brian, And So'S My Wife!" 
  &gt;&gt;&gt;
  </code></pre>
  
  <p>Is there any simple/one-line way in Python of capitalizing only the first letter of a string without lower-casing the rest of the string?</p>