区域:IOError:[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”,但总是出现这个错误。有没有什么办法可以解决这个问题?
3 个回答
1
另外,当尝试从SharePoint共享驱动器打开一个超过50MB的文件时,Python也会给出这个提示。
1
在C语言中,\t
、\n
和\r
是一些特殊的字符,叫做转义字符。\t
表示跳到下一个制表符的位置,也就是一个TAB键的效果。\n
表示换行,也就是开始新的一行。而\r
表示回车,通常是把光标移动到当前行的开头。你应该使用\\r
或者/r
,这样就能解决问题了!
32
使用正斜杠:
'path/regionlog.txt'
或者使用原始字符串:
r'path\regionlog.txt'
或者至少要对反斜杠进行转义:
'path\\regionlog.txt'
\r
是回车符。
还有一个选择:使用 os.path.join
,这样你就完全不用担心斜杠的问题了:
output = os.path.abspath(os.path.join('path', 'regionlog.txt'))