Използване на списък с функционални блокове за изброяване на FTP директория.
def list_directory():
try:
ftp = ftplib.FTP("0.0.0.0")
ftp.login(username, password)
files = []
files = ftp.retrlines("LIST")
except ftplib.error_perm, resp:
if str(resp) == "550 No files or directory found":
print "No files in this directory"
else:
raise
for x in files:
print files
list_directory()
Това е изходът.
drwxr-xr-x 2 ftpclient1 ftpclient1 4096 Jun 25 21:14 directory1
drwxr-xr-x 2 ftpclient1 ftpclient1 4096 Jun 25 21:18 directory2
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
226 Transfer complete
Какво правя погрешно, което причинява това "226 Прехвърляне завърши" няколко пъти и как се коригира?
Когато се опитам да го поправя
def list_directory():
try:
ftp = ftplib.FTP("192.168.189.130")
ftp.login(username, password)
files = []
files = ftp.retrlines("LIST")
except ftplib.error_perm, resp:
if str(resp) == "550 No files or directory found":
print "No files in this directory"
else:
raise
for x in files:
print x
list_directory()
Промяна на променливата за печат от print files
да се print x
разбирам това.
drwxr-xr-x 2 ftpclient1 ftpclient1 4096 Jun 25 21:14 directory1
drwxr-xr-x 2 ftpclient1 ftpclient1 4096 Jun 25 21:18 directory2
2
2
6
T
r
a
n
s
f
e
r
c
o
m
p
l
e
t
e
Моля помогнете.
Отговори:
0 за отговор № 1Файловете са низ. Печатайте само променливи файлове и трябва да видите 226 прехвърляне. Точно сега прелиствате всеки знак, присъстващ в този низ.
0 за отговор № 2
Много благодаря!
Направих промени в функцията и сега очакваме изход :-)
Ето промени:
return True
return False
# else:
# raise
# for x in files:
print files
И на базата на "purrogrammer" казва, че има смисъл. Коментираха "else", "raise" и "for x in files" (цикъл). Вместо това използвайте "return" True или False. Сега получаване на желаната продукция.
Благодаря! :-)