PYTHON IndexError: tuple index is out of range

Really rate feedback on this issue

import subprocess def main(): ''' Here where the whole thing starts. ''' #Edit this constant to change the file name in the git log command. FILE_NAME = 'file1.xml' #Do the git describe command to get the tag names. gitDescribe = 'git describe --tags `git rev-list --tags --max-count=2`' print ('Invoking: {0}'.format(gitDescribe)) p1 = subprocess.Popen(gitDescribe, shell=True, stdout=subprocess.PIPE) output = p1.stdout.read() #Get the first 2 tags from the output. parsedOutput = output.split('\n') tag1 = parsedOutput[0] tag2 = parsedOutput[1] print('First revision: {0}'.format(tag1)) print('Second revision: {1}'.format(tag2)) #Do the git log command for the revision comparison. gitLog = 'git log {0}..{1} --pretty=format:"%an %h %ad %d %s" --date=short --topo-order --no-merges {2}'.format(tag1, tag2, FILE_NAME) print('Invoking: {0}'.format(gitLog)) p2 = subprocess.Popen(gitLog, shell=True, stdout=subprocess.PIPE) output = p2.stdout.read() print(output) if __name__ == "__main__": main() 

...

 bash-3.2$ python pygit5.py Invoking: git describe --tags `git rev-list --tags --max-count=2` First revision: 14.5.5.1 Traceback (most recent call last): File "pygit5.py", line 31, in <module> main() File "pygit5.py", line 22, in main print('Second revision: {1}'.format(tag2)) IndexError: tuple index out of range 
+7
python
source share
2 answers

tag2 is only one value, for example tag1 , so you cannot refer to element [1]. Surely you mean

 print('Second revision: {0}'.format(tag2)) 
+11
source share

When using formatting as you have, remember that in most programming languages, counting starts from scratch. Since tag2 carries only one value, the following line:

 print('Second revision: {1}'.format(tag2)) 

Must be:

 print('Second revision: {0}'.format(tag2)) 

You can also leave it empty for simple scripts if using python 2.7 +:

 print('Second revision: {}'.format(tag2)) 

Or provide them in any order with named variables:

 print('Second revision: {revisiontag}'.format(revisiontag=tag2)) 
+9
source share

All Articles