【问题标题】:Python: with open(filename, 'w') for a file that does not existPython:打开(文件名,'w')用于不存在的文件
【发布时间】:2014-02-28 13:29:28
【问题描述】:

背景

我正在尝试编写一个脚本,从我制作的模板创建一个新的 LaTeX 文件,并且 在使用以下代码时,我遇到了一些障碍:

with open(filename + '.tex', 'w'):
    # Do stuff to filename.tex
    ...

将上述视为选项A

这里filename.texfilename 是一个变量,(可能)在用户执行脚本的目录中不存在。在 选项 A 中,未创建文件 通过with open(...) 声明。我显然需要在这种情况下创建filename.tex

还有另一种打开文件的方式,也就是选项B

f = open(filename.tex, 'w+')

在上述语句中,如果文件不存在,则创建该文件。

因此,我的问题:
如果我要写,我应该使用这些选项中的哪一个 清晰、编写良好的代码,遵循共享视图 Python社区的? (Pythonic)

如果选项A
如果没有,我将不胜感激有关如何touch 文件的说明 已经存在,一个链接会很棒。 (或包含在答案中)

【问题讨论】:

  • “在选项 A 中,文件不是由 with open(...) 语句创建的。” 奇怪,它是在我的机器上创建的。
  • @Kevin 这确实是最奇特的。我会尝试重新启动!
  • @Kevin 现在它可以工作了,突然(重启后)。

标签: python file text file-io fopen


【解决方案1】:

同时使用ww+ 模式打开会创建一个文件,除非它存在。 (如果存在则截断文件)

ww+ 的区别是:

  • w:只写
  • w+:读+写

【讨论】:

  • 除此之外,如果你真的想测试是否存在,请在没有模式参数的情况下调用该函数,如果文件不存在,它将失败。我不知道任何关于它的 Pythonic 约定,但它是测试文件是否存在的推荐方法。 stackoverflow.com/questions/82831/…
猜你喜欢
  • 2011-03-06
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多