Python Wierd循环输出FTP

Python Wierd循环输出FTP,python,for-loop,ftp,Python,For Loop,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

使用功能块列表列出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

请帮助。

文件是一个字符串。只打印文件变量,您应该看到226传输完成。现在,您正在迭代该字符串中的每个字符

非常感谢您

已更改函数并立即获得预期输出:-)

以下是变化:

                return True
           return False
#       else:
#               raise

#       for x in files:
        print files
根据“purrogrammer”的说法,这是有道理的。注释掉了“else”、“raise”和“for x in files”(循环)。而是使用“return”True或False。现在获得所需的输出

谢谢! :-)