我不确定为什么,但出于某种原因,每当我有" region"在输出文件的文件名中,它给了我这个错误:
IOError:[Errno 22]无效模式(' w')或文件名:'路径\ 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"但它不断出现这个错误。有办法吗?
答案 0 :(得分:31)
使用正斜杠:
'path/regionlog.txt'
或原始字符串:
r'path\regionlog.txt'
或者至少逃避你的反斜杠:
'path\\regionlog.txt'
\r
是回车。
另一种选择:使用os.path.join
,您根本不必担心斜线:
output = os.path.abspath(os.path.join('path', 'regionlog.txt'))
答案 1 :(得分:1)
在C标准语言中,\t
,\n
,\r
是转义字符。 \t
是下一个TAB位置的横向。 \n
是换行符,\r
是回车符。您应该使用\\r
或/r
,您将解决问题!
答案 2 :(得分:1)
另外,Python在尝试打开文件时也会给出此消息>来自SharePoint共享驱动器的50 MB。
答案 3 :(得分:0)
另一个简单的解决方案是将文件名路径中的“\ r”实例更改为“\ R”