/ / Python Wierd изходен цикъл FTP - python, for-loop, ftp

Python Wierd Loop Изход FTP - питън, за цикъл, ftp

Използване на списък с функционални блокове за изброяване на 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. Сега получаване на желаната продукция.

Благодаря! :-)