파이썬 스크립트로 다운로드하려는 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