我想使用Python脚本下载位于ftp站点上的文件地理数据库。现在,我在考虑一种实现此目的的方法是将ftp地理数据库复制到计算机上的地理数据库。下面是我开始的脚本。有谁知道我可以如何更改此脚本,以便获得ftp gdb?谢谢
以下是基于提供的@om_hennners的最终工作代码。
import arcpy, os, sys
from arcpy import env
arcpy.env.overwriteOutput = True
from ftplib import FTP
directory = "/group/geodb" #location of gdb on ftp
folder = "D:\\temp\\"
out_gdb = "data.gdb"
out_path = folder + os.sep + out_gdb
copy_gdb = "hydro.gdb" # This is the gdb I would like to copy from the ftp site
ftp = FTP("10.4.2.22")
ftp.login("user", "pass")
ftp.cwd(os.path.join(directory, copy_gdb))
print "Changed to " + os.path.join(directory, copy_gdb)
filenames = ftp.nlst()
print filenames
print "starting to write"
for f in filenames:
with open(os.path.join(out_path, f), 'wb') as local_file:
ftp.retrbinary('RETR '+ f, local_file.write)
ftp.close()
print "closed ftp connection"
除非我忽略了它,否则您是否在任何地方设置环境工作区?无论哪种方式,copy_gdb变量都将使用它作为其位置。
—
AHigh
您是否考虑过将地理数据库压缩为ZIP文件?几乎没有理由在FTP站点上具有未压缩的地理数据库。
—
blah238
是否可以在ftp站点上将地理数据库设置为工作空间而无需下载它?
—
geogeek
@geogeek不,不是...
—
blah238
@PattyJula今天必须写一个ftp脚本。事实证明,内置的ftplib对于导航目录层次结构是一种痛苦。相反,我是使用ftputil做到的,如果您要再次尝试的话,我会建议您这样做。
—
om_henners 2012年