python文件从另文件删除,实现文件的过滤
目录
问题描述
- 最近我在学习kaldi,纯小白新手上路。于是在做kaldi的数据准备的时候,我发现cnceleb1数据集数目不太正确,原来是train集包含了test集。按照常理来说train, test, enroll应该是不相交的。所以我目前的状况是不合理的。于是我需要将ceceleb1的数据进行过滤,把test的数据从train剥离出来。
- 自然而然地就冒出来第一个问题,也就是今天我要分享的主角:“如何将一个文件从另一个文件中删除,实现文件的过滤”。我就借用我最近做的例子来分享解决办法。
- 关于文件
我给大家看看我的文件长什么样子,这样方便接下来的介绍
上图是tarin的wav.scp ,一共126533条数据
上图是test集里面的wav.scp,一共17778条数据
很明显,这些是关于数据的信息,我要做的就是对这些信息进行过滤。把test出现的所有信息从train里面删去。
这里要注意的是,删除不是原封不动的删除,在test出现的id所对应的片段,train集里面都要删除。
相关的知识
-
文件的读取
我参考了这篇文章,讲的足够的清晰https://blog.csdn.net/qq_41130705/article/details/124837017
-
文件的写入
参考这篇文章学习文件的写入。看一下几分钟就能学会。
参考以下这篇文章https://www.python51.com/jc/15833.html,很清晰方法也很简单
这篇文章讲了list切片和split的不同用法,我看完很有收获https://blog.csdn.net/weixin_45527702/article/details/103951050
再结合这篇文章,你很快就会明白如何进行切片(强烈推荐)
代码演示
我的思路是先打开文件,然后把文件变成list,用list的方法处理文件,最后在整个写入文件。
好了下面就开始进行代码
- wav.scp文件的过滤
-
-
wavtest = open(r"D:\cnceleb1_train\test\wav.scp",'r')#打开文件
-
wavtestlist = list(wavtest)#将文件转成list表单
-
-
-
spk = []#建立一个叫做spk的空表,用于填写说话人名单
-
for i in wavtestlist:#遍历完成,此时spk是一个只有说话人id的表单
-
spk.append(i.split()[0].split('-')[0])
-
-
wav = open(r"D:\cnceleb1_train\wav.scp",'r')#打开文件
-
wavlist = list(wav)#将文件转成list表单
-
-
-
str = []#建立一个空表
-
-
for line in wavlist:#遍历wavlist的每一行
-
if line.split()[0].split('-')[0] not in spk:#如果wavlist的这一行给对应的说话人id不在spk表单里面,就把这一行信息加入到新建的表单当中
-
str.append(line)
-
-
-
with open(r"D:\cnceleb1_train\wavnew.scp",'w')as file:#输出文件
-
file.write(''.join(str))
-
file.close()
这样便可以生成一个新的文件wavnew.scp , 这就是我们过滤之后的文件。新文件不包括test里面所有说话的所有说话片段。
心得体会
最开始,我理解错意思了,我以为只用把test集的所有数据从train里面剔除出去就好,所以我第一遍筛选虽然成功了,但是没有满足的我的项目需求。
可见,只要把细节学习到位,功能都可以自己改进。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfkfgj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13