ftp://ftp2.census.gov/geo/tiger/TIGER2010/BG/2010/
我必须下载一些看起来像“tl_2010 _ st'_bg10.zip" where
st”的zip文件是2位状态fips代码。我应该如何编写Stata代码将这些选定的文件下载到文件夹中?Stata能否从FTP站点获取文件?如果没有,在Python中怎么样?
答案 0 :(得分: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/
你应该看看它和其中的链接。
答案 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
但是,我认为您需要其他东西来阅读这些文件。