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

时间:2013-02-28 17:22:30

标签: python ioerror

我不确定为什么,但出于某种原因,每当我有" 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"但它不断出现这个错误。有办法吗?

4 个答案:

答案 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。

https://support.microsoft.com/en-us/help/2668751/you-cannot-download-more-than-50-mb-or-upload-large-files-when-the-upl

答案 3 :(得分:0)

另一个简单的解决方案是将文件名路径中的“\ r”实例更改为“\ R”