Форум сайта python.su
Здравствуйте!
Подскажите как вывести только имена папок:
# -*- coding: utf-8 -*-
from ftplib import FTP
ftp = FTP('ftp_url')
ftp.login()
flist = ftp.nlst('pub/Books')
for obj in flist:
print obj
Офлайн
ftps.retrlines('LIST')
total 9
drwxr-xr-x 8 root wheel 1024 Jan 3 1994 .
drwxr-xr-x 8 root wheel 1024 Jan 3 1994 ..
drwxr-xr-x 2 root wheel 1024 Jan 3 1994 bin
drwxr-xr-x 2 root wheel 1024 Jan 3 1994 etc
d-wxrwxr-x 2 ftp wheel 1024 Sep 5 13:43 incoming
drwxr-xr-x 2 root wheel 1024 Nov 17 1993 lib
drwxr-xr-x 6 1094 wheel 1024 Sep 13 19:07 pub
drwxr-xr-x 3 root wheel 1024 Jan 3 1994 usr
-rw-r--r-- 1 root root 312 Aug 1 1994 welcome.msg
'226 Transfer complete.'
Отредактировано (Ноя. 7, 2010 17:26:59)
Офлайн
sypper-pit, если нужны только имена то их с помощью re выдёргивать ?
Офлайн
если умеешь то почему бы и нет, так же можно split использовать построчно , решай сам кк тебе удобнее
Отредактировано (Ноя. 7, 2010 17:59:31)
Офлайн
С split идея не плохая, но мне нужно работать с условием:
if (файл):
действие
else:
действие
Отредактировано (Ноя. 8, 2010 12:42:24)
Офлайн
andreiruos.path.isfile
С split идея не плохая, но мне нужно работать с условием:Может в Python есть что-то вроде is_file() как в PHP ?if (файл):
действие
else:
действие
Офлайн
Syao пробую так не работает:
import os
if (os.path.isfile('ftp://myftp/pub/test.txt')):
print '1'
else:
print '0'
Офлайн
А-а-а, в этом смысле …
isfile - это для локальной машины, чего то я затупил…
Смотри на первый символ строки в выводе ftplib, это unix'овская натация: ‘d’ - директория, ‘-’ - файл, и т.д.
Офлайн
Syao, sypper-pit, спасибо
Отредактировано (Ноя. 14, 2010 13:46:38)
Офлайн