1

我知道这可能看起来很粗鲁、刻薄或不礼貌,但我需要一些帮助来弄清楚为什么我不能window.loadPvmFile("f:\games@DD.ATC3.Root\common\models\a300\amu\dummy.pvm")像字符串那样调用它。它没有这样做,而是给了我一个回溯错误:

Traceback (most recent call last):
    File "F:\Python Apps\pvmViewer_v1_1.py", line 415, in <module>
        window.loadPvmFile("f:\games\@DD.ATC3.Root\common\models\a300\amu\dummy.pvm")
    File "F:\Python Apps\pvmViewer_v1_1.py", line 392, in loadPvmFile
        file1 = open(path, "rb")
IOError: [Errno 22] invalid mode ('rb') or filename:
'f:\\games\\@DD.ATC3.Root\\common\\models\x07300\x07mu\\dummy.pvm'

另请注意,在回溯错误中,文件路径不同。当我尝试一个除了驱动器号和文件名之外没有字母的路径时,它会引发此错误:

    Traceback (most recent call last):
File "F:\Python Apps\pvmViewer_v1_1.py", line 416, in <module>
    loadPvmFile('f:\0\0\dummy.pvm')
File "F:\Python Apps\pvmViewer_v1_1.py", line 393, in loadPvmFile
    file1 = open(path, "r")
TypeError: file() argument 1 must be encoded string without NULL bytes, not str

我已经搜索了调用编码函数的位置或参数被编码的位置并且找不到它。完全出乎意料,我没有想法,沮丧,我无处可去。源代码可以在这里找到:PVM VIEWER

另请注意,您将无法运行此代码并加载 pvm 文件,并且我使用的是可移植的 python 2.7.3!感谢大家的时间和精力!

4

1 回答 1

2

\a并且\0是转义序列。在字符串周围使用r''(或R'')将其标记为原始字符串

window.loadPvmFile(r"f:\games@DD.ATC3.Root\common\models\a300\amu\dummy.pvm")

于 2012-05-25T03:06:36.683 回答