属性错误:str没有属性删除

时间:2011-07-19 13:07:22

标签: python

我很抱歉上次我使用这个网站是我的第一次,我没有缩进我的代码和所有。但这次我试图这样做。我希望代码是可以理解的。我正在研究由https://p2tk.svn.sourceforge.net/svnrooot/p2tk/python/syllabify/syllabifier.py提供的Joshua Tauberer撰写的python程序syllabifier.py。这个程序是免费使用的,我也参考了我的项目中的源代码。我正在使用此程序将我所拥有的音素列表作为输入进行音节化。该程序接收一个输入文件,其内容如下:

  

pau s aa m ih k l eh k t aa n ph a pau a e p l a p k a a p p a a p p a p p p

这些是从语音文件生成的音素。 pau代表短暂的停顿。然后,该程序将此输入音节化以产生如下输出:

  

s aa'm ih'k e a i i i i i i i i i i <<<<<<<<<<<

此输出是音节化版本。但是当我从输入文件中手动删除pau时,程序生成了此输出。因为该程序只识别音素而pau不是一个。所以我需要在程序中进行更改,从列表中删除所有现有的pau。我在这里复制了程序的主要部分。我添加了这些线条 text.remove(“pau”)并且还尝试添加另一个是phoneme.remove(“pau”)。但是在这两种情况下我都会收到一条错误:str对象没有删除属性。我不明白我哪里错了。请帮忙。非常感谢你。

def syllabify(language, text) :

 text.remove("pau") 
 if type(text) == str :
    text = text.split()

 syllables = [] # This is the returned data structure.

 internuclei = [] # This maintains a list of phonemes between nuclei.

 for phoneme in text :
    #phoneme.remove("pau")
    phoneme = phoneme.strip()
    if phoneme == "" :
        continue
    stress = None

2 个答案:

答案 0 :(得分:4)

phoneme = phoneme.replace("pau", "")

答案 1 :(得分:1)

def syllabify(language, text) :
    #These lines will take any list of phonemes or string of phonemes
    #and strip all of the whitespace and 'pau's
    #and won't return any empty phonemes
    if type(text) is not str:
        text = ' '.join(text)
    text.replace("pau", "") 
    text = text.split()

    syllables = [] # This is the returned data structure.
    internuclei = [] # This maintains a list of phonemes between nuclei.

    for phoneme in text:
        # so you don't have to check for empty phonemes,
        # delete 'pau's, or strip whitespace here
        stress = None
        # whatever else you do