将数字值解码为unicode python的最佳方法



有比str(value).decode('utf-8')

示例用法:

from scipy.io import wavfile
encoding = 'utf-8'
def get_data(basename):
        print (basename).decode(encoding)
        sampFreq, snd  = wavfile.read(basename+'.wav')
        print (u'sample freq: ' + str(sampFreq).decode(encoding) + ' Hz')
        print (u'sample size: '+ str(snd.dtype).decode(encoding))

您可以直接使用unicode()函数:

print u'sample freq: ' + unicode(sampFreq) + u' Hz'
print u'sample size: '+ unicode(snd.dtype)

或者将值单独传递给print(它会将每个部分转换为字符串,并在其中添加空格):

print u'sample freq:', sampFreq, u'Hz'
print u'sample size:', snd.dtype

但最好的做法是使用str.format()(这里实际上是unicode.format()):

print u'sample freq: {} Hz'.format(sampFreq)
print u'sample size: {}'.format(snd.dtype)

有关详细信息,请参阅格式字符串语法文档。

无需解码,str()即可,即

print (u'sample freq: ' + str(sampFreq) + ' Hz')
print (u'sample size: '+ str(snd.dtype))

然而,这将起作用:

print(u'sample freq: {} Hz'.format(sampFreq))
print(u'sample size: {}'.format(snd.dtype))

使用str.format()是"现代"/更可取的方法。

最新更新