【问题标题】:I am opening a file for writing but the file name I have chosen creates an error 22:我正在打开一个文件进行写入,但我选择的文件名会产生错误 22:
【发布时间】:2016-05-18 21:44:03
【问题描述】:

如果我运行此代码,我会收到以下错误: fout = open ('M:\projects\EGU\BS\bsofab.txt', 'w')

IOError: [Errno 22] 无效模式 ('w') 或文件名:'M:\projects\EGU\BS\x08sofab.txt'

如果我将文件名更改为 ('M:\projects\EGU\BS\ofbsab.txt', 'w') 它工作正常。有人可以告诉我发生了什么吗?

谢谢

【问题讨论】:

  • 您是否跳过了教程中关于转义字符的部分?

标签: python-2.7


【解决方案1】:

我只在 Windows 中工作,我发现在 UNIX 或 Mac 环境中,文件名使用正斜杠作为文件路径,反斜杠用于“转义字符”。 \b 表示“退格”。

通过将 r 添加到这样的路径(r'M:\projects\EGU\BS\bsofab.txt', 'w'),它可以完美运行。

r 用于“原始”,本质上允许忽略最后一个反斜杠。

我确实找到了一些更复杂的解决方案,但这是迄今为止最容易实现的。

【讨论】:

  • 不只是最后一个反斜杠,所有个反斜杠。由于几乎没有理由在文件名中使用转义字符,因此原始字符串是完美的解决方案。但是您可能会惊讶地发现,在 Windows 中也可以使用正斜杠。
  • 感谢您的澄清!
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多