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

时间:2015-12-28 11:38:56

标签: python python-2.7 unicode python-unicode

是否有更好的方法从数字值获取unicode字符串 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))

2 个答案:

答案 0 :(得分:3)

您可以直接使用unicode() function

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)

有关详细信息,请参阅Format String Syntax documentation

答案 1 :(得分:1)

无需解码,DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd/hh-mm"); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = new Date(); System.out.println("date "+dateFormat.format(date)); 就足够了,即

str()

会起作用,但是:

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

使用str.format(),是“现代”/更好的方式。