PythonスクリプトでダウンロードしたいFTPサイトにファイルジオデータベースがあります。現在、これを行う1つの方法は、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