Анализатор списков Python IOError: [Errno 63] Имя файла слишком длинное: - PullRequest
1 голос
/ 26 мая 2011

мой анализатор списков Python не любит мою длинную строку в формате plist.

plist_data = plistlib.readPlist(plistString)

plistString - фактически содержимое файла, который я открыл.Как ни странно, помещение входного файла в функцию readPlist работает, но мне пришлось выполнить дальнейшее форматирование этого файла в python.

Я запускаю приведенный выше код и получаю IOError: [Errno 63] на консоли.Не уверен, как этого избежать?Я предполагаю, что функция ищет «сырой» ввод вместо строки.Как мне обмануть это?

Ответы [ 2 ]

4 голосов
/ 26 мая 2011

Если вы хотите прочитать строку как файл, используйте StringIO .

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

Лучше не открывать и не читать файл pList. plistlib.readPlist открывает и читает для вас.

2 голосов
/ 26 мая 2011

plistlib.readPlist принимает файл или имя файла, а не содержимое.Не удивительно, что вы получаете эту ошибку:

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

Попробуйте plistlib.readPlistFromBytes(data) или используйте StringIO для представления вашей строки в виде файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...