Python : Using Pexpect: ftpTest.py

  1. Introduction to Python
  2. Python: Choosing a Text Editor or IDE
  3. Python: Hello World
  4. Python: Variables, Strings and Numbers
  5. Python: Variable Naming
  6. Python: Math, Familiar
  7. Python: Math, Less Familiar
  8. Python: Mathematical Order of Operations
  9. Python: Introducing PEP 8
  10. Python: Text Concatenation
  11. Python: if Statements and Comparison Operators
  12. Python: else and elif statements
  13. Python: Testing Multiple Conditions
  14. Python: Testing Sets of Conditions
  15. Python: Nested if Statements
  16. Python: Lists
  17. Python: Adding To and Changing Lists
  18. Python: Lists: Take a Slice, Delete Elements, Popping Elements
  19. Python: Tuples
  20. Python: for Loops
  21. Python: Nested for Loops
  22. Python: Capturing and Formatting User Input
  23. Python: Dictionaries
  24. Python: Functions
  25. Python: While Loops
  26. Python: Creating and Using Classes
  27. Python: Data Files
  28. Python: Modules
  29. Python: CSV Files
  30. Python: JSON Files
  31. Python: Errors and Exception Handling
  32. Python: Using Pexpect
  33. Python : Using Pexpect : ftpTestOffload.sh
  34. Python : Using Pexpect: ftpTest.py
  35. Python: DCL Conversion to Python

Here’s a sample Python/Pexpect script, which is called by the bash script in the previous page.

Note how the spawn function runs the command you supply as the argument, in this case “ftp ftp.ubuntu.com”.

#!/usr/bin/python

# Connects to a public ftp server, downloads a file

import pexpect
import sys
child = pexpect.spawn('ftp ftp.ubuntu.com')
child.logfile = sys.stdout
child.expect('Name')
child.sendline('anonymous')
child.expect('Password')
child.sendline('anonymous')
child.expect('ftp>')
child.sendline('cd /ubuntu/dists/xenial')
child.expect('ftp>')
child.sendline('get InRelease')
child.expect('ftp>')
child.sendline('quit')

You can insert working Python code anywhere in this chain, for instance if you need to handle multiple conditions with “if” statements.