今天的文章还是之前打包的一个脚本的解释,这个脚本非常简单,只有几行,功能也很简单,是为了得到一个目录里的所有文件名,这个脚本也可以作为学习如何使用、编写脚本的一个很好的例子。
假设我们想知道目录E:\Biaobei_Demo里有多少个wav,并且得到这些文件名,如下:
000001.wav
000002.wav
000003.wav
000004.wav
000005.wav
000006.wav
000007.wav
000008.wav
000009.wav
...
其实通过简单的Dos命令一句话就可以实现,不过为了更多的练习脚本,建议有兴趣的同学试一下脚本的操作。那么DOS命令/Mac命令如何操作呢?
windows下,使得快捷键win+R,点出来运行窗口,或者点开始-运行,在里面输入cmd然后点确定。

仅通过一行命令就可以实现,首先通过pushd命令转换到你要列出文件名的目录里,这里是E:\Biaobei_Demo目录,然后使用dir命令就可以操作了,后面的>号是重定向,意思是将dir命令的结果保存到后面这个文件里。
C:\Users\shao>pushd E:\Biaobei_Demo
E:\Biaobei_Demo>dir > E:\list.txt
你会看到得到这样的结果:
2020-08-26 22:13 <DIR> .
2020-08-26 22:13 <DIR> ..
2020-07-25 14:18 3,766 000001.TextGrid
2017-07-07 10:45 255,404 000001.wav
2020-07-25 14:18 3,757 000002.TextGrid
2017-07-07 10:45 274,604 000002.wav
......
这好象有点乱,我们只想得到文件名,如何操作?加一个参数,/b即可
E:\Biaobei_Demo>dir /b > E:\list.txt
这时候的结果变成:
000002.wav
000003.TextGrid
000003.wav
000004.TextGrid
000004.wav
000005.TextGrid
000005.wav
000006.TextGrid
......
如果我们只想显示某一种文件呢?比如只想得到音频文件或者标注文件。加上一种扩展名限制就好。
E:\Biaobei_Demo>dir *.wav /b > E:\list.txt
结果就变成:
000004.wav
000005.wav
000006.wav
000007.wav
000008.wav
......
无论如何操作,还是比较简单的,如果是在Mac系统,只需要打开终端,使用ls代替dir就好,具体的操作可自行搜索一下。
代码段:
这个脚本只是利用Praat的一个功能,也是很简单的几句话而已。

运行脚本
打开Praat之后,选择Praat,Open Praat Script...,打开这个脚本,然后在脚本窗口选择Run,Run,或者直接使用快捷键Ctrl+R,在弹出来的对话框里,设置以下几个地方,首先以上述示例中的普通话数据为例,本文例子的目录在E盘的Biaobei_Demo目录:
- 设置需要提取的文件名的扩展名,这里设置为
.wav,有兴趣可以改为其它试一下; - 设置文件夹名称,这里是
E:\Biaobei_Demo\; - 设置
保存结果路径,这里是E:\file_names_biaobei_demo.txt;

设置完毕,点击OK,运行脚本,结果可以到E:\file_names_biaobei_demo.txt查看。
如何获取脚本 https://github.com/feelins/Praat_Scripts
本站所有Praat脚本都可以在上述github的项目目录里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows在自己的电脑上通过git clone将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图1位置所示,下载整站的代码,也可直接使用。

本文的代码是02-get_file_names\Get_FileNames_of_One_Directory.Praat,点进去之后,还有附带的示例文件,同学可练习使用。脚本里有我的邮箱,有任何问题都可以来信咨询。
关注
关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。

版权说明
1、版权归本公众号“极地语音工作室”,原名“语音处理小站”所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。
批量获取目录下文件名
本文介绍如何在Windows和Mac系统中使用简单命令批量获取指定目录下的所有文件名,特别聚焦于.wav音频文件的提取。文章详细展示了如何利用DOS命令、Mac命令以及Praat脚本来实现这一目标。
823

被折叠的 条评论
为什么被折叠?



