如何用python读取ftp上的文件?

时间:2015-08-01 08:18:28

标签: python ftp

这是我的代码:

import ftputil
import urllib2
a_host = ftputil.FTPHost(hostname, username,passw)

for (dirname, subdirs, files) in a_host.walk("/"): # directory
    for f in files:
            if f.endswith('txt'):
                htmlfile = open(f, 'r')
                readfile = htmlfile.read()

我认为应该没问题,但我收到了错误

Traceback (most recent call last):

    htmlfile = open(f, 'r')
IOError: [Errno 2] No such file or directory: u'readme.txt'

问题出在哪里?

2 个答案:

答案 0 :(得分:2)

您无法使用本地文件等open来读取远程文件。您需要先从远程主机下载文件。

for (dirname, subdirs, files) in a_host.walk("/"): # directory
    for f in files:
        if f.endswith('txt'):
            a_host.download(f, f)  # Download first
            with open(f) as txtfile:
                content = txtfile.read()

答案 1 :(得分:1)

您需要使用a_host.open,而不是Python默认open

因此,相反:

htmlfile = open(f, 'r')
readfile = htmlfile.read()

此:

htmlfile = a_host.open(f, 'r')
readfile = htmlfile.read()