1

ftp://ftp2.census.gov/geo/tiger/TIGER2010/BG/2010/

我必须下载一些看起来像“tl_2010_ st'_bg10.zip" wherest”是 2 位状态 fips 代码的 zip 文件。我应该如何编写 Stata 代码以将这些选定的文件下载到文件夹中?Stata 是否能够从 FTP 站点获取文件?如果不,在 Python 中呢?

4

2 回答 2

3

如前一个答案中所述,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/

你应该看看那个和其中的链接。

于 2013-10-21T17:20:34.110 回答
2

这在 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

但是,我认为您将需要其他东西来阅读这些文件。

于 2013-10-21T15:57:53.237 回答