Python's pexpect.spawn expects arguments not str.format

Use list of arguments with pexpect.spawn instead of str.format.

import pexpect
 
# Incorrect.
path = '/tmp/dir-without-spaces'
child = pexpect.spawn('ls {0}'.format(path))
print(child.read())
child.close()
 
# Error.
path = '/tmp/dir with spaces'
child = pexpect.spawn('ls {0}'.format(path))
print(child.read())
child.close()
 
# Also incorrect.
path = '/tmp/dir with spaces'
child = pexpect.spawn('ls "{0}"'.format(path))
print(child.read())
child.close()
 
# Correct.
path = '/tmp/dir with spaces'
child = pexpect.spawn('ls', [path])
print(child.read())
child.close()
$ mkdir -p "/tmp/dir-without-spaces"
$ mkdir -p "/tmp/dir with spaces"
$ touch "/tmp/dir-without-spaces/file"{1,2,3}".txt"
$ touch "/tmp/dir with spaces/file"{1,2,3}".txt"
$ python test.py
file1.txt  file2.txt  file3.txt
 
ls: cannot access '/tmp/dir': No such file or directory
ls: cannot access 'with': No such file or directory
ls: cannot access 'spaces': No such file or directory
 
file1.txt  file2.txt  file3.txt
 
file1.txt  file2.txt  file3.txt
Did this help you? Please let me know with a comment. Thank you
Posted .

Comments (RSS)

Leave a comment