title: Most pythonic way to convert a string to a octal number
body: <p>I am looking to change permissions on a file with the file mask stored in a configuration file. Since os.chmod() requires an octal number, I need to convert a string to an octal number. For example:</p>
  
  <pre><code>'000' ==&gt; 0000 (or 0o000 for you python 3 folks)
  '644' ==&gt; 0644 (or 0o644)
  '777' ==&gt; 0777 (or 0o777)   
  </code></pre>
  
  <p>After an obvious first attempt of creating every octal number from 0000 to 0777 and putting it in a dictionary lining it up with the string version, I came up with the following:</p>
  
  <pre><code>def new_oct(octal_string):
  
      if re.match('^[0-7]+$', octal_string) is None:
          raise SyntaxError(octal_string)
  
      power = 0
      base_ten_sum = 0
  
      for digit_string in octal_string[::-1]:
          base_ten_digit_value = int(digit_string) * (8 ** power)
          base_ten_sum += base_ten_digit_value
          power += 1
  
      return oct(base_ten_sum)
  </code></pre>
  
  <p>Is there a simpler way to do this?</p>