在python中将多字节字符转换为单字节

时间:2018-11-15 09:04:20

标签: python iconv multibyte

我需要将多字节表示的英文字符和数字(0-9)转换为单字节。除英文字符外,其他字符必须保持不变。我可以使用Python和Shell脚本来做到这一点。只需在python中实现相同的需求(不使用任何shell脚本)。

  

输入:1MORE,360FLLY,BCジャパン,デイテル・ジャパン

     

输出:1MORE,360FLY,BCジャパン,デイテル・ジャパン

python脚本针对遇到的每个字符调用shell脚本。

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() 

Shell脚本:

#!/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

请帮助!

0 个答案:

没有答案