首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >区域: IOError:[Errno 22]无效的模式('w')或文件名

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

Stack Overflow用户
提问于 2013-03-01 01:22:30
回答 4查看 50K关注 0票数 21

我不知道为什么,但出于某种原因,每当我在输出文件的文件名中有"region“时,它就会给我这个错误:

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

它为"region.txt""logregion.txt",等实现了这一点。

代码语言:javascript
复制
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“,但它总是出现这个错误。有没有办法绕过它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-01 01:24:54

使用正斜杠:

代码语言:javascript
复制
'path/regionlog.txt'

或原始字符串:

代码语言:javascript
复制
r'path\regionlog.txt'

或者至少转义你的反斜杠:

代码语言:javascript
复制
'path\\regionlog.txt'

\r是回车。

另一种选择是:使用os.path.join,你就完全不用担心斜杠了:

代码语言:javascript
复制
output = os.path.abspath(os.path.join('path', 'regionlog.txt'))
票数 32
EN

Stack Overflow用户

发布于 2017-03-14 19:29:42

在C标准语言中,\t\n\r都是转义字符。\t是下一个制表符位置的横向位置。\n是换行符,\r是回车符。你应该使用\\r/r,你将会解决这个问题!

票数 1
EN

Stack Overflow用户

发布于 2017-11-21 21:20:42

此外,Python在试图从SharePoint共享驱动器打开一个大于50MB的文件时也会显示此消息。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15141761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档