12

I'd like to retrieve files' name of a directory and I use the method ftplib.retrlines('NLST' + path).

It prints all files' names in the directory path. But I want to store those files' names in a container, e.g., a list, instead of printing them in the console. How to do that ?

Martin Prikryl
  • 188,800
  • 56
  • 490
  • 992
Tao Xiao
  • 259
  • 1
  • 4
  • 10

2 Answers2

12

The second (optional) argument to the FTP.retrlines is a callback.

FTP.retrlines(command[, callback])

You can use it like:

lines = []
sess.retrlines('NLST ' + path, lines.append)

See also Creating list from retrlines in Python.

Martin Prikryl
  • 188,800
  • 56
  • 490
  • 992
9

You can use FTP.nlst() method. It returns the file names as a list.

>>> FTP.nlst('path')
['x','y','z']
Vishesh Shrivastav
  • 2,079
  • 2
  • 16
  • 34