查看原文
其他

万物皆可开——shellout妙用

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王宇晖,北京师范大学-香港浸会大学联合国际学院

本文编辑:王玉洁

技术总编:李婷婷

Stata&Python云端课程来啦!

       为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~爬虫俱乐部推出了Python编程培训课程Stata基础课程Stata进阶课程Stata文本分析正则表达式网络爬虫基本字符串课程。报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。我们在这篇推文的最后提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~

引言

shellout,顾名思义,破壳而出。shellout是Stata中一个非常好用的打开各种文件的命令,比如打开格式为.doc.txt.mp3.dta格式的文件等等,功能可谓是非常强大。shellout是一个为 Windows XP/NT 设计的shell包装器,与shell不同的是,它实现了一个嵌套的DOS命令,DOS窗口被告知自行关闭,即实现了一个自动化连贯过程。今天笔者在这里给大家介绍一下shellout命令以及它的几个常用用法。

一. 如何安装shellout

  shellout最初是为了帮助outreg2自动打开非Stata文档而编写的,因此我们需要在outreg2命令中下载。首先我们打开Stata,在命令栏里输入findit shellout,会出现如下界面:

  点击outreg2对应的红色方框中的网址,进入到下一个页面,并拉到最下面,如下图所示:

  从图中安装列表我们可以看到,outreg2包中包含了shellout这个组件,点击红色方框中的click here to install开始下载此安装包。

  出现上图红色方框所示内容就说明outreg2已经安装成功了,shellout就可以用啦!

PS:因为outreg2包是国外网站上的,因此在安装过程中可能会因为网络问题导致不成功,有vpn的伙伴们可以打开试一试,不成功的话就多试几次或者换一个稳定快速的网络就可以啦。
二. 调出notepad并打开一个txt文档

 shellout命令既可以直接在Stata中打开记事本,也可以打开一个已有的记事本,命令非常简单。举个简单的例子,只需输入shellout notepad即可打开一个新的记事本,在记事本中输入“stata shellout”,并把该文件保存在D盘下,名为test.txt。  

我们试一下输入命令调用默认程序打开test.txt文件,这里使用两种方式:
shellout using D:/test.txtshellout "D:/test.txt"

  如此操作,即可将保存在D盘下的"test.txt"文件使用默认程序即记事本打开,结果如图:

  在打开的过程中,我们会发现,在文件打开前电脑会闪过一个cmd窗口,如图所示:

  这是Windows系统的命令行程序,类似于微软的DOS操作系统,使用shellout命令时,系统会自动关闭这个cmd窗口。

三. 用shellout打开word文档和图片

  作为一个万能的开锁神器,shellout当然不可能只能用来打开记事本格式的文件。shellout除了可以打开notepad以外,还可以打开word文档、图片和MP3文件等。我们接下来先介绍一下打开文档和图片,MP3放在最后来给大家介绍。打开文档和照片的命令和上面介绍的打开txt文件的命令基本一样,只需要将文件所在的路径和文件名进行修改,就可以调用默认程序来打开这个文件。给大家举个例子,我在D盘下创建一个名为test.docx的word文档,并在D盘下保存了一个名为test.png的图片文件,那么打开这两个文件的命令就如下所示:

shellout using D:/test.docxshellout using D:/test.png*或shellout "D:/test.docx"shellout "D:/test.png"

  由于我这里word文档的默认打开方式是Microsoft Office,所以会自动调用微软来打开这个test.docx文档。那这时候大家可能会出现疑问,如果不想用微软来打开,而是想用WPS怎么办呢?没关系,我们有两种办法,第一种办法:选中想要打开的docx文件后单击鼠标右键,点击打开方式,选择其他应用,进入到下图这个界面。然后找到你想要使用的默认打开的程序,勾选红色方框,即可将此应用程序作为默认打开程序。

  第二种办法,直接在文件路径的前面加上指定打开程序的路径,如果将上述的test.docx文档的默认打开方式为设置为了WPS,但现在想用Microsoft Office来打开它,就可以指定Microsoft Word的应用程序,命令如下:

shellout "C:\Program Files\Microsoft Office\root\Office16\WINWORD.exe" "D:/test.docx"

  是不是非常简单便捷!


四. 用shellout打开MP3

  试想一下,当你在使用Stata工作时累了,想听一首歌来放松一下,但是又懒得自己动手去打开音乐,想让Stata使用指定的播放器帮你打开MP3音乐,并且播完音乐之后可以自动关闭播放器,怎么办呢?  

在使用shellout打开MP3文件时,我们可以指定播放器来打开,和打开文档照片的方法基本一致,格式如下:shellout "播放器应用程序路径" "MP3文件路径"  
在打开之后,我们可以用checksum命令来查看文件的大小,然后用r(filelen)返回计算值。同时,根据笔者的多次试验,码率为128k的MP3文件基本符合下面的大小和音乐时间转换:(1.6r(filelen)/257001000)+5,320k的文件基本符合下面的转换:(0.62r(filelen)/257001000)+5,针对不同的MP3文件可能会有微小的差异。因此我们可以输入命令让Stata指定播放器自动打开MP3文件,然后计算音乐的播放时长,在这个时间后,使用!taskkill自动关闭播放器。taskkill命令是一个dos命令,所以我们在Stata中使用时前面必须加上!,即!taskkill,taskkill是用来终止进程的。  
我用D盘里的128k码率的“唯一”这首歌曲来给大家做个演示,指定用QQ音乐播放器来打开,最后自动关闭。完整的命令如下:
shellout "D:\QQMusic\QQMusic.exe" "D:\唯一.mp3"checksum "D:\唯一.mp3"local time = (r(filelen)*1.6/25700*1000)+5sleep `time'!taskkill /im QQMusic.exe /f

  运行后Stata使用QQ音乐打开位于D盘的“唯一.mp3”文件,如图所示:


  从上图中可以看到,Stata在休息了261.808秒后执行!taskkill命令,自动关闭播放器。这样一来,我们在工作劳累时就可以让Stata自动为我们播放一首歌曲啦!  

今天的推文到这里就结束啦。shellout是一个特别方便好用的命令,推荐给大家哦!

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。



腾讯课堂课程二维码








            


 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!











往期推文推荐

无处不在的系列配置项|从零开始的Pyecharts(三)

使用Python制作自动聊天机器人  

fillin一下,平衡回来~

order命令——快速改变变量顺序的利器 Ajax应用场景——以获取雪球网港股代码及公司名称为例

播放列表中的歌单排行 

在Stata中轻松运用program编写命令

Meta Analysis in Stata17      

芒果TV视频弹幕爬取之《我在他乡挺好的》

Stata中的判断神器——confirm命令

cngdf——名义GDP与实际GDP之间的摆渡船

最近《扫黑风暴》有点火爆!我从豆瓣评论中发现了这些……

随机森林-Random Forest 

复原之神--preserve&restore

合并,“纵”享新丝滑:frameappend & xframeappend
什么是全局配置项?|从零开始的Pyecharts(二)帮你拿下数据可视化|从零开始的Pyecharts 

Stata助力疫情打卡管理——是谁没有接龙呢?

这十年,《金融研究》的编委和读者偏爱哪些研究话题和文章?

【案例展示】Python与数据库交互

学好这一手,英语词典常在手 

玩转Stata中的数学函数

用spmap看中国空气质量

戳穿围城面具:安利&劝退一个专业

走进图文并茂的攻略世界 

玩转word文档“大变身”——wordconvert

数据读入|一文读懂用Stata读入不同类型的数据

简述递归

OpenCV库——轻松更换证件照背景色

800万年薪!还有谁?!

千古伤心词人,词伤几何

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存