使用功能块列表列出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 :(得分:0)
文件是一个字符串。仅打印文件变量,您应该看到226传输完成。现在,您正在遍历该字符串中的每个字符。
答案 1 :(得分:0)
非常感谢你!
对功能进行了更改并立即获得预期输出: - )
以下是更改:
return True
return False
# else:
# raise
# for x in files:
print files
基于“purrogrammer”说,这是有道理的。注释掉“else”,“raise”和“for x in files”(循环)。而是使用“返回”True或False。现在获得所需的输出。
谢谢! : - )