当前位置: 首页 > 知识库问答 >
问题:

删除文件(如果存在);python

孙朝明
2023-03-14

我想创建一个文件;如果它已经存在,我想删除它并重新创建它。我尝试这样做,但它抛出一个Win32错误。我做错了什么?

try:
    with open(os.path.expanduser('~') + '\Desktop\input.txt'):
        os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
        f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
except IOError:
    f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')

共有3个答案

华良平
2023-03-14

您可以在模式参数为'w'的情况下使用open。如果省略模式,则默认为“r”。

with open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')

将文件截断为零长度或创建文本文件以进行写入。流位于文件的开头。

邓鸿雪
2023-03-14

您试图在文件打开时删除该文件,您甚至不需要使用删除该文件:

path = os.path.join(os.path.expanduser('~'), 'Desktop/input.txt')
with open(path, 'w'): as f:
    # do stuff

如果存在,则删除

商昂然
2023-03-14

您正试图删除一个打开的文件,并且os.remove()state的文档。。。

在Windows上,尝试删除正在使用的文件会引发异常

您可以将代码更改为。。。

filename = os.path.expanduser('~') + '\Desktop\input.txt'
try:
    os.remove(filename)
except OSError:
    pass
f1 = open(filename, 'a')

…或者你可以用…来代替所有这些。。。

f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')

…这将在打开之前将文件截断为零长度。

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

  • 问题内容: 朋友们, 我正在创建一个临时表。该脚本可能会运行几次,因此我需要检查临时表是否存在,然后将其删除。我已经在下面编写了代码,但是两次运行脚本时出现错误,表明该表已经存在: 数据库中已经有一个名为“#lu_sensor_name_19”的对象 。 当Tablle不为null时,似乎不会返回true。我究竟做错了什么? 问题答案: Temp #Tables是在tempdb中创建的。试试这个:

  • 问题内容: 我有一个脚本,它使用DROP TABLE IF EXISTS删除表的负载,这可以工作。 此脚本中还有一个删除操作,用于从我不管理的另一个表中删除一行。该表可能存在或不存在。是否有任何在尝试删除行之前检查该表是否存在? 这需要适用于MYSQL和SQLServer 谢谢亚历克斯 问题答案: 要签入SQL SERVER, 要检查mysql: 您只需数:

  • 我正在编写一个程序,将一些JSON编码的数据存储在一个文件中,但有时生成的文件是空白的(因为没有找到任何新数据)。当程序查找并存储数据时,我执行以下操作: 当然,如果文件是空白的,这将引发一个异常,我可以抓住,但不让我删除文件。我曾经尝试过: 我得到了这个错误: 发生异常时,如何删除文件?

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

  • 我有一个非常简单的功能: 该文件在执行后显示不可读,并从文件目录中消失。但是,当从浏览器访问时,它仍然可用,尽管没有缓存(在不同的浏览器上打开文件进行测试)。我是不是错过了什么?文件是否被服务器缓存?这是我能想到的唯一解释。