首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中删除字符串中的引号

在Python中删除字符串中的引号
EN

Stack Overflow用户
提问于 2016-12-04 01:55:27
回答 7查看 301.8K关注 0票数 93

我有一个python代码,它将识别使用谷歌STT引擎的语音,并给我返回的结果,但我得到的结果在字符串中与“引号”。我不想在我的代码中使用这个引号,因为我将使用它来运行许多命令,但它不起作用。到目前为止,我还没有尝试过任何东西,因为我没有得到任何可以尝试的东西!这是python代码中识别语音的函数:

代码语言:javascript
复制
def recog():
    p = subprocess.Popen(['./speech-recog.sh'], stdout=subprocess.PIPE,
                                            stderr=subprocess.PIPE)
    global out,err
    out, err = p.communicate()
    print out

这是speech-recog.sh:

代码语言:javascript
复制
#!/bin/bash

hardware="plughw:1,0"
duration="3"
lang="en"
hw_bool=0
dur_bool=0
lang_bool=0
for var in "$@"
do
    if [ "$var" == "-D" ] ; then
        hw_bool=1
    elif [ "$var" == "-d" ] ; then
        dur_bool=1
    elif [ "$var" == "-l" ] ; then
        lang_bool=1
    elif [ $hw_bool == 1 ] ; then
        hw_bool=0
        hardware="$var"
    elif [ $dur_bool == 1 ] ; then
        dur_bool=0
        duration="$var"
    elif [ $lang_bool == 1 ] ; then
        lang_bool=0
        lang="$var"
    else
        echo "Invalid option, valid options are -D for hardware and -d for duration"
    fi
done

arecord -D $hardware -f S16_LE -t wav -d $duration -r 16000 | flac - -f --best --sample-rate 16000 -o /dev/shm/out.flac 1>/dev/shm/voice.log 2>/dev/shm/voice.log; curl -X POST --data-binary @/dev/shm/out.flac --user-agent 'Mozilla/5.0' --header 'Content-Type: audio/x-flac; rate=16000;' "https://www.google.com/speech-api/v2/recognize?output=json&lang=$lang&key=key&client=Mozilla/5.0" | sed -e 's/[{}]/''/g' | awk -F":" '{print $4}' | awk -F"," '{print $1}' | tr -d '\n'

rm /dev/shm/out.flac

这段视频摘自Steven Hickson为Raspberry Pi制作的语音命令程序

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-12-04 02:16:12

如果字符串方法在整个过程中都出现,则使用.replace();如果只在开始和/或结束时出现,则使用.strip()

代码语言:javascript
复制
a = '"sajdkasjdsak" "asdasdasds"' 

a = a.replace('"', '')
'sajdkasjdsak asdasdasds'

# or, if they only occur at start and end...
a = a.strip('\"')
'sajdkasjdsak" "asdasdasds'

# or, if they only occur at start...
a = a.lstrip('\"')

# or, if they only occur at end...
a = a.rstrip('\"')
票数 187
EN

Stack Overflow用户

发布于 2018-03-13 12:27:03

为此,您可以使用eval()

代码语言:javascript
复制
>>> url = "'http address'"
>>> eval(url)
'http address'

尽管eval()会带来风险,但我认为在这种情况下它是安全的。

票数 20
EN

Stack Overflow用户

发布于 2020-09-01 16:31:35

最简单的方法是:

代码语言:javascript
复制
s = '"sajdkasjdsaasdasdasds"' 
import json
s = json.loads(s)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40950791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档