当前位置: 首页 > 面试题库 >

删除可能不存在的文件的大多数pythonic方法

能业
2023-03-14
问题内容

我要删除该文件(filename如果存在)。说的合适吗

if os.path.exists(filename):
    os.remove(filename)

有没有更好的办法?单行方式?


问题答案:

一种更pythonic的方式是:

try:
    os.remove(filename)
except OSError:
    pass

尽管这花费了更多的行并且看起来很丑陋,但是它避免了不必要的调用os.path.exists()并遵循过度使用异常的python约定。

可能值得编写一个函数为您执行此操作:

import os, errno

def silentremove(filename):
    try:
        os.remove(filename)
    except OSError as e: # this would be "except OSError, e:" before Python 2.6
        if e.errno != errno.ENOENT: # errno.ENOENT = no such file or directory
            raise # re-raise exception if a different error occurred


 类似资料:
  • 我想删除文件,如果它存在的话。这样说合适吗 有更好的办法吗?单行道?

  • 问题内容: 我正在使用postgreSQL9.1,并且想使用此提示从表中删除重复项: 另一种可能的方式是 我在ORDER BY (SELECT 0)上面使用,因为在打平的情况下保留哪一行是任意的。 为了保留最新的RowID顺序,例如,您可以使用ORDER BY RowID DESC 执行计划 执行计划通常比接受的答案更简单,更有效,因为它不需要自我连接。 执行计划 但是,情况并非总是如此。一种GR

  • 在Python中,有没有一种简单的方法可以删除一个字典的属性,当这个属性可能一开始就不存在的时候? 如果使用语句,则结果为KeyError: 使用if语句有点冗长,必须键入和两次: 正在查找与类似的内容,如果该属性不存在,则默认为值:

  • 问题内容: 我们需要先致电,然后才能删除文件,例如 当前,在我们所有的项目中,我们都在一些util类中创建一个静态方法来包装此代码。是否有其他方法可以实现相同目的,因此我们不需要在其他每个项目中复制utils文件。 问题答案: 从Java 7开始,可以使用deleteIfExists,它根据是否删除文件返回一个布尔值(或引发Exception)。对于其他文件系统操作,此方法可能不是原子的。此外,如

  • 我有文件在上传/project ect1/更新。 问题是,只删除更新中的文件。我想删除文件夹上载中的目录。。。也就是说,文件夹名“project1”和“update”在更新中的文件被删除后也会被删除。你能帮我找出错误吗?? 这个编码发出警告 警告:clocdirer()期望参数1为资源, 警告:rmdir(update)[function.rmdir]:没有这样的文件或目录。。 但是在目录上传中,

  • 问题内容: 我正在Linux系统上使用非常大的文本文件(〜11GB)。我正在通过正在检查文件错误的程序来运行它。一旦发现错误,我需要修复该行或完全删除该行。然后重复… 最终,一旦我对流程感到满意,我便将其完全自动化。但是,现在让我们假设我正在手动运行它。 从此大文件中删除特定行最快(就执行时间而言)是什么?我想到了用Python进行此操作…但是可以接受其他示例。该行可能在文件中的 任何位置 。 如