python-2.7 - 字符串与 unicode 编码 - Struct() 参数

标签 python-2.7 encoding character-encoding enthought

我遇到了一个奇怪的问题,无论我使用什么编码,它都会返回相同的错误。该代码运行良好,没有 Python 2.7.8 中的编码部分,但它在 2.7.6 中中断,这是我用于所有开发的版本。

import MIDI_PY2 as md
import glob
import ast
import os
dir = '/Users/user/Desktop/sample midis/'
os.chdir(dir)
file_list = []

for file in glob.glob('*.mid'):
    file_list.append((dir + file))

dir = '/Users/user/Desktop/sample midis/'
os.chdir(dir)

file_list 返回:

[u'/Users/user/Desktop/sample midis/M1.mid',
 u'/Users/user/Desktop/sample midis/M2.mid',
 u'/Users/user/Desktop/sample midis/M3.mid',
 u'/Users/user/Desktop/sample midis/M4.mid']

md.concatenate_midis(file_list,'/Users/luissanchez/Desktop/temp/out.mid') 返回此错误:

-
TypeError                                 Traceback (most recent call last)
<ipython-input-73-2d7eef92f566> in <module>()
----> 1 md.concatenate_midis(file_list_1,'/Users/user/Desktop/temp/out.mid')

/Users/user/Desktop/sample midis/MIDI_PY2.pyc in concatenate_midis(paths, outPath)

/Users/user/Desktop/sample midis/MIDI_PY2.pyc in midi2score(midi)

/Users/user/Desktop/sample midis/MIDI_PY2.pyc in midi2opus(midi)

TypeError: Struct() argument 1 must be string, not unicode

然后我修改代码,使第一个参数是字符串,而不是 unicode:

file_list_1 = [str(x) for x in file_list]

返回:

['/Users/user/Desktop/sample midis/M1.mid',
 '/Users/user/Desktop/sample midis/M2.mid',
 '/Users/user/Desktop/sample midis/M3.mid',
 '/Users/user/Desktop/sample midis/M4.mid']

使用最后一个列表 (file_list_1) 运行 concatenate_midis 函数会返回完全相同的错误: TypeError: Struct() argument 1 must be string, not unicode。

有人知道这是怎么回事吗? concatenate_midi 在 python 2.7.8 中运行良好,但无法弄清楚为什么它在我使用的内容中不起作用,Enthought Canopy Python 2.7.6 | 64 位

谢谢

最佳答案

错误

error: TypeError: Struct() argument 1 must be string, not unicode.

通常是由 struct.unpack() 引起的在旧版本的 python 中,函数需要字符串参数而不是 unicode。检查 struct.unpack() 参数是否是字符串而不是 unicode。

关于python-2.7 - 字符串与 unicode 编码 - Struct() 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26008272/

相关文章:

scala - 如何让 scala-maven-plugin 识别 Cp1252 编码?

python - BeautifulSoup 和转换 HTML 实体的奇怪行为

mysql - 文件编码(UTF-8 无法正常工作)

c - 字符数组开头出现意外字符

Python arrow包时区错误?

encoding - url在asp3中编码

Python 2.7 类属性奇怪的行为

java - 如何使密文字符与明文字符相同?

Python 子进程卡在communicate() 调用上

c++ - 在 virtualenv 中使用 c++ 编译库