Python plist解析器IOError:[Errno 63]文件名太长:

时间:2011-05-25 20:48:25

标签: python input plist

我的Python plist解析器不喜欢plist格式的长字符串。

plist_data = plistlib.readPlist(plistString)

plistString实际上是我打开的文件的内容。奇怪的是,将输入文件放入readPlist函数是可行的,但我必须在python中对该文件进行一些进一步的格式化。

我运行上面的代码并在控制台上获得IOError: [Errno 63]。不知道该怎么避免这个?我猜这个函数正在寻找“原始”输入,而不是字符串。我怎么欺骗它?

2 个答案:

答案 0 :(得分:4)

如果您想将字符串作为文件读取,请使用StringIO

fakeFile= StringIO.StringOI( plistString )
plist_data = plistlib.readPlist(fakeFile)

最好不要打开和读取pList文件。 plistlib.readPlist为您打开并阅读。

答案 1 :(得分:2)

plistlib.readPlist获取文件或文件名,而不是内容。毫不奇怪你得到这个错误:

#define ENAMETOOLONG    63      /* File name too long */

尝试plistlib.readPlistFromBytes(data)或使用StringIO将字符串显示为文件