【问题标题】:Loading cfg file into python - Wrong URL?将 cfg 文件加载到 python - 错误的 URL?
【发布时间】:2013-04-20 16:28:11
【问题描述】:

这就是我所拥有的:

    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?

【问题讨论】:

    标签: python file load


    【解决方案1】:

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

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

    另一个是使用正斜杠而不是反斜杠(在 Windows 中有效):

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

    如果您在更正此问题后仍然遇到同样的错误,那么这似乎表明您指定的文件位置有问题。您确定该位置正确吗?

    【讨论】:

    • 感谢您的帮助!我已经仔细检查了所有内容,但由于某种原因它仍然不允许我加载它。我会尝试将文件移动到新目录。
    • 奇怪,请尝试后反馈,因为我对问题是什么感兴趣
    • 还是没有运气。我问过其他人,他说我需要使用 'parse_cfg' 方法而不是 data.load()。然而,这也不起作用,所以我不太确定问题是什么。不过感谢您的意见!
    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢您的帮助!那讲得通。但是由于某种原因仍然无法正常工作,同样的错误。
    • 不,它现在显示为 b,太棒了!它只是有相同的无效模式或文件名问题。
    • 对不起...假设该文件存在并且可以通过合理的内容读取,我不知道是什么原因造成的。
    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2016-03-13
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多