区域:IO错误:[Errno 22]无效模式('w')或文件名


问题内容

我不确定为什么,但是由于某种原因,每当我在输出文件的文件名中包含“ region”时,就会出现此错误:

IOError:[Errno 22]无效模式(’w’)或文件名:’path \ regionlog.txt’

它针对 “ region.txt”“ logregion.txt” 等执行此操作

class writeTo:
    def __init__(self, stdout, name):
       self.stdout = stdout
       self.log = file(name, 'w') #here is where it says the error occurs

output = os.path.abspath('path\regionlog.txt')
writer = writeTo(sys.stdout, output) #and here too

为什么是这样?我真的很想将我的文件命名为“ regionlog.txt”,但它总是会提示该错误。有办法解决吗?


问题答案:

使用正斜杠:

'path/regionlog.txt'

或原始字符串:

r'path\regionlog.txt'

或至少逃脱您的反斜杠:

'path\\regionlog.txt'

\r 是回车。


另一个选择:使用os.path.join,您完全不必担心斜线:

output = os.path.abspath(os.path.join('path', 'regionlog.txt'))