Stata:遍历并列示文件夹下所有文件-filelist

发布时间:2021-09-02 阅读 146

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:王一博 (东北师范大学)
邮箱wangyb278@nenu.edu.cn


目录


1. filelist 命令

filelist 命令是 Robert Picard 编写的新命令,用于遍历并列出指定文件夹下特定类型的文件数量和名称。

*命令安装
ssc install filelist, replace
*命令语法
filelist , [ directory(dirpath) pattern(search_pattern)
           save(stata_dataset) replace list norecursive maxdeep(#) ]
  • filelist:默认情况下,该命令会遍历指定文件夹下的所有文件,包括隐藏的系统文件;
  • directory:用于指定待遍历的文件夹,省略该项会导致命令从当前文件夹下开始遍历;
  • pattern:遍历文件夹下的特定类型文件。注意,该选项遵从 strmatch() 函数规则,例如,pattern("\*.csv") 执行后仅返回后缀为 ".csv" 的文件;
  • save:保存结果到特定位置;
  • replace:覆盖原数据集;
  • list:将遍历的文件结果列示在 Stata 结果窗口;
  • norecursive:将搜索限制在制定文件夹下的初始目录;
  • maxdeep:指定文件搜索深度,默认递归搜索所有子目录。 maxdeep(1) 等同于 norecursive 选项。

2. Stata 实例

查找当前目录及其子目录中的所有文件:

. filelist
Number of files found = 8172

上述命令执行后,由于未指定遍历文件夹和遍历文件类型,命令自动对当前文件夹的所有文件进行遍历。可以看出的是,在当前文件夹中一共有 8172 份文件。

接着,查找 “Stata 连享会” 文件夹下的所有 dta 文件,并在 Stata 窗口列示遍历结果,然后将结果保存在 “dta_datasets.dta” 文件中。

. filelist, directory("C:\Users\19416\Desktop\Stata连享会") ///
            pattern("*.dta") list ///
            save("C:\Users\19416\Desktop\dta_datasets.dta")

Number of files found = 22

  +------------------------------------------------------------------------+
  | filepath                                                         fsize |
  |------------------------------------------------------------------------|
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/cbb.dta                2,856,396 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/ceo.dta                  937,375 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/cfb.dta                  766,358 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/governors.dta            335,841 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/mayors.dta               247,749 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/mlb.dta                  105,532 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/nba.dta                  139,878 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/nfl.dta                   78,305 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/nhl.dta                   70,374 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/permuted.dta               6,331 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_cbb.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_ceo.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_cfb.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_governors.dta        2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_mayors.dta           2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_mlb.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_nba.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_nfl.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_nhl.dta              2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/power_worldleaders.dta     2,559 |
  | C:\Users\Desktop\Stata连享会/RIFLE_Rep/worldleaders.dta         657,751 |
  +------------------------------------------------------------------------+
file dta_datasets.dta saved

在上述实例的基础上,若想呈现所有 dta 文件的完整位置信息,可以执行如下命令:

use dta_datasets.dta, clear 
local obs = _N
forvalues i=1/`obs'{
    use dta_datasets.dta in `i', clear //同上
    local f = dirname + "/" + filename
    insheet using "`f'", comma clear double
    gen source = "`f'"
    tempfile save`i'
    save "`save`i''"
}

use "`save1'", clear
forvalues i=2/`obs' {
    append using "`save`i''"
}

3. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 文件, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh