将cfg文件加载到python中 - 错误的URL?

时间:2013-04-20 16:28:11

标签: python file load

这就是我所拥有的:

    myGrammar = nltk.data.load('file:C:\Users\Jay\Documents\buffalo.cfg')

我得到的错误是:

  `Traceback (most recent call last):
   File "C:\Users\Jay\Documents\Assignment9.py", line 8, in <module>
   myGrammar = nltk.data.load( 'file:C:\Users\Jay\Documents\buffalo.cfg')
 File "C:\Python27\lib\site-packages\nltk\data.py", line 610, in load
   resource_val = nltk.grammar.parse_cfg(_open(resource_url).read())
 File "C:\Python27\lib\site-packages\nltk\data.py", line 689, in _open
   return open(path, 'rb')
  IOError: [Errno 22] invalid mode ('rb') or filename: 'C:\\Users\\Jay\\Documents\x08uffalo.cfg'`

有谁知道我的网址应该是什么?为什么我在错误中得到x08而不是b?

2 个答案:

答案 0 :(得分:2)

使用RichieHindle的答案中显示的原始字符串是纠正字符错误的一种方法。另一个是逃避反斜杠:

myGrammar = nltk.data.load('file:C:\\Users\\Jay\\Documents\\buffalo.cfg')

另一种方法是使用正斜杠而不是反斜杠(在Windows中可以正常工作):

myGrammar = nltk.data.load('file:C:/Users/Jay/Documents/buffalo.cfg')

如果您在纠正此问题后仍然遇到相同的错误,那么它似乎表明您正在指定的文件位置存在问题..您确定位置是否正确?

答案 1 :(得分:0)

使用原始字符串 - 请注意前导r - 对于带有嵌入式反斜杠的字符串:

load(r'file:C:\Users\Jay\Documents\buffalo.cfg')
     ^

否则你的一些反斜杠(例如在\b中)会将普通字符变成控制字符。