错误"无效的文件名"如果我在文件名中使用字母a到f

use*_*303 0 python file-handling python-2.7

我正在使用pyton 2.7.我编写了一个脚本,当它被执行时,它将调用并运行一些名为abc.py的其他文件.但我得到错误

IOError: [Errno 22] invalid mode ('r') or filename: 'F:\x07bc.c'
Run Code Online (Sandbox Code Playgroud)

如果我更改文件名,它工作正常.它只显示错误,如果我使用从a到f的字母作为文件名的第一个字母请帮助.谢谢

Dav*_*nan 5

考虑Python字符串'\a'.如文档中所述,反斜杠字符被解释为转义字符.所以,'\a'实际上是在ASCII字符贝尔,字符数7.

你的文件名是,'F:\abc.c'\a在那里被解释为ASCII贝尔.您可以在解释器中清楚地看到这一点:

>>> 'F:\abc.c'
'F:\x07bc.c'
>>> print 'F:\abc.c'
F:bc.c
Run Code Online (Sandbox Code Playgroud)

当您打印该字符串时,请注意\a不显示.那是因为它已经变成了一个看不见的贝尔控制角色.

要包含反斜杠,可以使用正确的转义序列\\.把它们放在一起,你的文件名应该是:'F:\\abc.c'.作为替代方案,您可以在字符串前添加前缀r,使其成为原始字符串.这也在文档中详细说明.

>>> 'F:\\abc.c'
'F:\\abc.c'
>>> print 'F:\\abc.c'
F:\abc.c
>>> r'F:\abc.c'
'F:\\abc.c'
>>> print r'F:\abc.c'
F:\abc.c
Run Code Online (Sandbox Code Playgroud)