ftp://ftp2.census.gov/geo/tiger/TIGER2010/BG/2010/
我必须下载一些看起来像“tl_2010_ st'_bg10.zip" where
st”是 2 位状态 fips 代码的 zip 文件。我应该如何编写 Stata 代码以将这些选定的文件下载到文件夹中?Stata 是否能够从 FTP 站点获取文件?如果不,在 Python 中呢?
ftp://ftp2.census.gov/geo/tiger/TIGER2010/BG/2010/
我必须下载一些看起来像“tl_2010_ st'_bg10.zip" where
st”是 2 位状态 fips 代码的 zip 文件。我应该如何编写 Stata 代码以将这些选定的文件下载到文件夹中?Stata 是否能够从 FTP 站点获取文件?如果不,在 Python 中呢?
如前一个答案中所述,copy
并将unzipfile
完成这项工作。对于多个文件(适当命名),您可以尝试以下操作:
forvalues i = 1/100 {
copy http://example.com/download`i'.zip download`i'.zip
unzipfile download`i'.zip
}
鉴于您正在使用的文件类型(即 .shp 和 .dbf),您可能想尝试用户编写的命令shp2dta
。运行ssc describe shp2dta
以获取描述并ssc install shp2dta
进行安装。
您还可以使用带/不带 Stata 的“标准”shell 命令,当然,您几乎可以使用任何通用语言(例如 Python)来完成任务。
所有这些都记录在 Stata 博客中:
http://blog.stata.com/2010/12/01/automating-web-downloads-and-file-unzipping/
你应该看看那个和其中的链接。
这在 Stata 13 中对我有用(尚未测试早期版本):
. copy ftp://ftp2.census.gov/geo/tiger/TIGER2010/BG/2010/tl_2010_01005_bg10.zip bg10.zip
. unzipfile bg10.zip
inflating: tl_2010_01005_bg10.dbf
inflating: tl_2010_01005_bg10.prj
inflating: tl_2010_01005_bg10.shp
inflating: tl_2010_01005_bg10.shp.xml
inflating: tl_2010_01005_bg10.shx
successfully unzipped bg10.zip to current directory
但是,我认为您将需要其他东西来阅读这些文件。