Stata,Python:从Stata(或Python)的FTP站点下载文件

时间:2013-10-21 15:02:34

标签: python ftp stata

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

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

2 个答案:

答案 0 :(得分:3)

如前一个回答所述,copyunzipfile将完成工作。对于多个文件(适当命名),您可以尝试类似:

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/

你应该看看它和其中的链接。

答案 1 :(得分: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

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