python 字符串 去除 特定位置字符——简记

举报
墨理学AI 发表于 2022/01/13 23:30:18 2022/01/13
【摘要】 参考链接 Python文件读写、StringIO和BytesIO 概念参考 数据格式为: 20180616_231315_A003081_B003080_A 1 0.000 1.840 speake...

参考链接
Python文件读写、StringIO和BytesIO 概念参考

数据格式为:

20180616_231315_A003081_B003080_A  1 0.000 1.840 speaker NA unknown 
20180616_231315_A003081_B003080_B  1 0.000 1.840 speaker NA unknown 

  
 
  • 1
  • 2

转换为:

20180616_231315_A003081_B003080  1 0.000 1.840 speaker NA unknown 
20180616_231315_A003081_B003080  1 0.000 1.840 speaker NA unknown 

  
 
  • 1
  • 2

代码如下:

# ester1.tst.mdtm 把第一个 show 字段  去掉 _A _B 转化为  test.tst.mdtm

# show 代表音频名字
f = open("ester.tst.mdtm","r")

fo = open("test.tst.mdtm", "w")
while True:
    line = f.readline()
    if not line:
        break
    else:
        try:
            #print(line)
 
            #print(type(line))
            
            temp = line[:31] + line[33:]
        
            fo.write(temp)
        except:
            print("=====")
            print(str(line))
            print("=====")
            
fo.close()  

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

文件读写相关知识:
‘r’:读

‘w’:写

‘a’:追加

‘r+’ == r+w(可读可写,文件若不存在就报错(IOError))

‘w+’ == w+r(可读可写,文件若不存在就创建)

‘a+’ ==a+r(可追加可写,文件若不存在就创建)

对应的,如果是二进制文件,就都加一个b就好啦:

‘rb’  ‘wb’  ‘ab’  ‘rb+’  ‘wb+’  ‘ab+’

个人简记:

踩的坑:
“”"
自己把 mdtm文件 ,一行读出, decode解码为 string 去掉 _A _B 后,再 encode编码为 字节 ,写入 mdtm
报错如下:
ValueError: not enough values to unpack (expected 8, got 0)
“”"
总结如下:

二进制方式 读写文件 ,但是二进制字节 转 字符串 ,去字符,再转 字节写入文件

这种方法,数据看上去没有问题,但是 我的程序是运行报错的 ,所以 要么读写都用 二进制 读写, 要么都用 字符串 读写

文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。

原文链接:positive.blog.csdn.net/article/details/88034905

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。