Hướng dẫn how do i remove all quotes from a string in python? - làm cách nào để xóa tất cả các dấu ngoặc kép khỏi một chuỗi trong python?

Tôi có một mã Python sẽ nhận ra lời nói bằng cách sử dụng động cơ Google STT và cung cấp lại cho tôi kết quả nhưng tôi nhận được kết quả trong chuỗi với "trích dẫn". Tôi không muốn trích dẫn đó trong mã của mình vì tôi sẽ sử dụng nó để chạy nhiều lệnh và nó không hoạt động. Tôi đã không thử bất cứ điều gì cho đến khi tôi không nhận được bất cứ thứ gì để thử! Đây là chức năng trong mã Python sẽ nhận ra lời nói:

def recog[]:
    p = subprocess.Popen[['./speech-recog.sh'], stdout=subprocess.PIPE,
                                            stderr=subprocess.PIPE]
    global out,err
    out, err = p.communicate[]
    print out

Đây là bài phát biểu recog.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;' "//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

Điều này được lấy từ chương trình VoiceCommand của Steven Hickson được thực hiện cho Raspberry Pi

Đã hỏi ngày 3 tháng 12 năm 2016 lúc 17:55Dec 3, 2016 at 17:55

Alok Naushadalok NaushadAlok Naushad

1.2452 huy hiệu vàng8 Huy hiệu bạc9 Huy hiệu đồng2 gold badges8 silver badges9 bronze badges

2

Chỉ cần sử dụng các phương thức chuỗi

#!/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;' "//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
3 nếu chúng xảy ra trong suốt hoặc
#!/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;' "//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
4 nếu chúng chỉ xảy ra khi bắt đầu và/hoặc kết thúc:

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['\"']

Đã trả lời ngày 3 tháng 12 năm 2016 lúc 18:16Dec 3, 2016 at 18:16

Smcismcismci

30.7K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồng18 gold badges110 silver badges145 bronze badges

3

Bạn có thể sử dụng eval [] cho mục đích này

>>> url = "'http address'"
>>> eval[url]
'http address'

Trong khi eval [] đặt ra rủi ro, tôi nghĩ trong bối cảnh này là an toàn.

Đã trả lời ngày 13 tháng 3 năm 2018 lúc 4:27Mar 13, 2018 at 4:27

koliyat9811koliyat9811koliyat9811

7871 huy hiệu vàng7 Huy hiệu bạc1 gold badge7 silver badges11 bronze badges

4

Có một số cách này có thể được thực hiện.

  • Bạn có thể sử dụng chức năng chuỗi tích hợp

    #!/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;' "//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
    
    3 để thay thế tất cả các lần xuất hiện của trích dẫn trong một chuỗi đã cho:

    >>> s = '"abcd" efgh'
    >>> s.replace['"', '']
    'abcd efgh'
    >>> 
    
  • Bạn có thể sử dụng hàm chuỗi

    #!/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;' "//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
    
    6 và biểu thức trình tạo để xóa tất cả các trích dẫn khỏi một chuỗi đã cho:

    >>> s = '"abcd" efgh'
    >>> ''.join[c for c in s if c not in '"']
    'abcd efgh'
    >>> 
    
  • Bạn có thể sử dụng một biểu thức thông thường để xóa tất cả các trích dẫn khỏi chuỗi đã cho. Điều này có thêm lợi thế cho việc cho phép bạn có quyền kiểm soát khi nào và nơi một báo giá sẽ bị xóa:

    >>> s = '"abcd" efgh'
    >>> import re
    >>> re.sub['"', '', s]
    'abcd efgh'
    >>> 
    

Đã trả lời ngày 3 tháng 12 năm 2016 lúc 18:12Dec 3, 2016 at 18:12

Christian Deanchristian Trưởng khoaChristian Dean

21.4K7 Huy hiệu vàng 50 Huy hiệu bạc80 Huy hiệu đồng7 gold badges50 silver badges80 bronze badges

Cách dễ nhất là:

s = '"sajdkasjdsaasdasdasds"' 
import json
s = json.loads[s]

Đã trả lời ngày 1 tháng 9 năm 2020 lúc 8:31Sep 1, 2020 at 8:31

RyanryanRyan

7941 Huy hiệu vàng12 Huy hiệu bạc26 Huy hiệu đồng1 gold badge12 silver badges26 bronze badges

3

________số 8

Đã trả lời ngày 3 tháng 12 năm 2016 lúc 18:06Dec 3, 2016 at 18:06

Harald Nordgrenharald NordgrenHarald Nordgren

10,9k6 Huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu Đồng6 gold badges39 silver badges62 bronze badges

4

Bạn có thể thay thế các ký tự "Trích dẫn" bằng một chuỗi trống, như thế này:

>>> a = '"sajdkasjdsak" "asdasdasds"' 
>>> a
'"sajdkasjdsak" "asdasdasds"'
>>> a = a.replace['"', '']
>>> a
'sajdkasjdsak asdasdasds'

Trong trường hợp của bạn, bạn có thể làm tương tự cho biến

#!/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;' "//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
7.

Đã trả lời ngày 3 tháng 12 năm 2016 lúc 18:05Dec 3, 2016 at 18:05

Aza Taza tAza T

5894 Huy hiệu bạc11 Huy hiệu đồng4 silver badges11 bronze badges

Để thêm vào bình luận của @Christian:

Thay thế tất cả các trích dẫn đơn hoặc đôi trong một chuỗi:

#!/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;' "//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
0

Đã trả lời ngày 7 tháng 12 năm 2020 lúc 15:35Dec 7, 2020 at 15:35

Điều này sẽ xóa các trích dẫn đầu tiên và cuối cùng trong chuỗi của bạn

#!/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;' "//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
1

Output:

#!/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;' "//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
2

Đã trả lời ngày 8 tháng 10 năm 2021 lúc 0:53Oct 8, 2021 at 0:53

Làm cách nào để xóa tất cả các trích dẫn khỏi một chuỗi?

Sử dụng phương thức String.Repaceall [] để xóa tất cả các trích dẫn kép khỏi chuỗi, ví dụ: str. Thay thế ['"', '']. Phương thức thay thế [] sẽ trả về một chuỗi mới với tất cả các trích dẫn kép được xóa. replaceAll[] method to remove all double quotes from a string, e.g. str. replaceAll['"', ''] . The replace[] method will return a new string with all double quotes removed.

Làm cách nào để xóa tất cả các trích dẫn từ một danh sách trong Python?

Để xóa các trích dẫn khỏi danh sách các chuỗi:..
Sử dụng danh sách hiểu để lặp lại trong danh sách ..
Sử dụng str.Phương thức Dải [] để loại bỏ các trích dẫn dẫn đầu và dấu ngoặc ra khỏi mỗi chuỗi ..
Các mục trong danh sách mới sẽ không chứa các trích dẫn dẫn đầu và theo dõi ..

Làm thế nào để bạn in một chuỗi mà không có trích dẫn trong Python?

Phương pháp 2: Danh sách in mà không có báo giá và dấu phẩy.Để in danh sách chuỗi không có dấu ngoặc kép và dấu phẩy, hãy sử dụng biểu thức '[' + ''.Tham gia [lst] + ']' để tạo một biểu diễn chuỗi duy nhất của danh sách mà không có trích dẫn xung quanh các chuỗi riêng lẻ và không có dấu phẩy tách các yếu tố danh sách.use the expression '[' + ' '. join[lst] + ']' to create a single string representation of the list without the quotes around the individual strings and without the commas separating the list elements.

Làm thế nào để bạn thoát khỏi các trích dẫn duy nhất trong Python?

Sử dụng hàm lstrip [] để xóa các trích dẫn đơn từ chuỗi trong Python.Hàm Lstrip [] sẽ thuận tiện loại bỏ bất kỳ ký tự hàng đầu nào trong chuỗi.Chúng ta có thể sử dụng hàm lStrip [] để xóa bất kỳ trích dẫn nào ở đầu chuỗi. to remove single quotes from string in Python. The lstrip[] function conveniently removes any leading characters in a string. We can utilize the lstrip[] function to remove any single quotes that are at the beginning of the string.

Bài Viết Liên Quan

Chủ Đề