Конвертировать многобайтовые символы в однобайтовые в python - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть требование преобразовать английские символы и цифры (0-9), представленные в многобайтовом формате, в однобайтовые. Кроме английских символов должны остаться без изменений. Я могу сделать это с помощью сценариев Python и Shell. То же самое должно быть достигнуто только в python (без использования какого-либо сценария оболочки).

Ввод: 1MORE, 360FLY, BC ジ ャ パ ン, デ イ テ ル ・ ジ ャ パ ン

Выход: 1MORE, 360FLY, BC ジ ャ パ ン, デ イ テ ル ・ ジ ャ パ ン

Сценарий python вызывает скрипт оболочки для каждого встречаемого символа.

Скрипт Python:

import os
import subprocess
import shlex
ipfile=open('Brands.csv','r')
opfile=open('japan_tv_weekly_converted.csv','w',encoding='utf-8')
for line in ipfile:
    for character in line:
        utf8Character=character
        if utf8Character == '"':
            os.system('sh iconv_command.sh \\'+utf8Character+' \\'+character)
        else:
            os.system('sh iconv_command.sh "'+utf8Character+'" "'+character+'"')
    os.system('printf "\n">>japan_tv_weekly_converted.csv')
opfile.close()
ipfile.close() 

Сценарий оболочки:

#!/bin/bash
x=`echo -n $1|iconv -f utf-8 -t ascii//translit`
if [ "$x" != "?" ]; then
    echo -n $1|iconv -f utf-8 -t ascii//translit>>japan_tv_weekly_converted.csv
else
    echo -n $2>>japan_tv_weekly_converted.csv
fi

Пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...