地区:IOError:无效模式('w')或文件名

我不知道为什么,但由于某种原因,每当我有输出文件的文件名称中的“区域”,它给了我这个错误:

IOError:[Errno 22] invalid mode('w')or filename:'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' 

或者原始string:

 r'path\regionlog.txt' 

或者至less逃避你的反斜杠:

 'path\\regionlog.txt' 

\r是一个回车。

另一种select:使用os.path.join ,你根本不必担心斜杠:

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

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