Python의 String에서 따옴표 제거
나는 구글 STT 엔진을 사용하여 음성을 인식하고 결과를 돌려주는 파이썬 코드를 가지고 있지만 "견적"이 있는 문자열로 결과를 얻습니다.많은 명령을 실행하는 데 사용할 것이기 때문에 코드에 해당 따옴표를 사용하지 않습니다.나는 지금까지 아무것도 시도해 본 적이 없습니다.이것은 스피치를 인식하는 파이썬 코드의 함수입니다.
def recog():
p = subprocess.Popen(['./speech-recog.sh'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
global out,err
out, err = p.communicate()
print out
이것은 음성 녹음입니다.sh:
#!/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
이것은 스티븐 힉슨의 라즈베리 파이용 음성 명령 프로그램에서 가져온 것입니다.
문자열 메서드만 사용합니다..replace()
만약 그것들이 전체적으로 발생한다면, 또는..strip()
출발 및/또는 결승에서만 발생하는 경우:
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('\"')
이 용도로 eval()을 사용할 수 있습니다.
>>> url = "'http address'"
>>> eval(url)
'http address'
eval은 위험을 제기하지만, 저는 이러한 맥락에서 안전하다고 생각합니다.
이 작업을 수행할 수 있는 몇 가지 방법이 있습니다.
내장된 문자열 기능을 활용할 수 있습니다.
.replace()
지정된 문자열에 있는 모든 따옴표를 바꾸려면 다음과 같이 하십시오.>>> s = '"abcd" efgh' >>> s.replace('"', '') 'abcd efgh' >>>
문자열 함수를 사용할 수 있습니다.
.join()
및 지정된 문자열에서 모든 따옴표를 제거하는 생성기 식:>>> s = '"abcd" efgh' >>> ''.join(c for c in s if c not in '"') 'abcd efgh' >>>
정규식을 사용하여 지정된 문자열에서 모든 따옴표를 제거할 수 있습니다.이를 통해 인용문을 삭제할 시기와 위치를 제어할 수 있습니다.
>>> s = '"abcd" efgh' >>> import re >>> re.sub('"', '', s) 'abcd efgh' >>>
가장 쉬운 방법은 다음과 같습니다.
s = '"sajdkasjdsaasdasdasds"'
import json
s = json.loads(s)
다음과 같이 "따옴표" 문자를 빈 문자열로 바꿀 수 있습니다.
>>> a = '"sajdkasjdsak" "asdasdasds"'
>>> a
'"sajdkasjdsak" "asdasdasds"'
>>> a = a.replace('"', '')
>>> a
'sajdkasjdsak asdasdasds'
당신의 경우, 당신은 같은 일을 할 수 있습니다.out
변수.
문자열의 첫 번째와 마지막 따옴표가 제거됩니다.
import ast
example = '"asdfasdfasdf"'
result = ast.literal_eval(example)
print(result)
출력:
asdfasdfasdf
if string.startswith('"'):
string = string[1:]
if string.endswith('"'):
string = string[:-1]
@Christian의 논평에 추가하기:
문자열의 모든 단일 또는 이중 따옴표 바꾸기:
s = "'asdfa sdfa'"
import re
re.sub("[\"\']", "", s)
언급URL : https://stackoverflow.com/questions/40950791/remove-quotes-from-string-in-python
'bestsource' 카테고리의 다른 글
PowerShell: csv 파일에서 행 수를 계산하는 방법은 무엇입니까? (0) | 2023.08.17 |
---|---|
봄과 빈혈 영역 모델 (0) | 2023.08.17 |
PowerShell로 이진 레지스트리 값(REG_BINARY)을 설정하는 방법은 무엇입니까? (0) | 2023.08.17 |
개발을 위한 장치 설정(권한 없음) (0) | 2023.08.17 |
MySQL을 상업적 환경에서 사용하는 것이 합법입니까? (0) | 2023.08.17 |