【问题标题】:How to create a temporary file and delete after [duplicate][重复]之后如何创建临时文件并删除
【发布时间】:2021-02-17 07:54:33
【问题描述】:

我正在编写一些测试用例,我想创建一个临时 csv 文件并在测试完成后将其删除。由于某种原因,该文件仍然存在。

我的印象是该文件仅在 with 范围内存在。另外,我是否可以在同一范围内访问包含我刚刚编写的行的文件?

这是我目前所拥有的。

    with open('test.csv', 'w') as file:
        writer = csv.writer(file)
        writer.writerows(row_list)
        return handle_upload_file(file)

我的 handle_upload_file 只是从 csv 文件中读取数据。会不会是函数出错了,因为文件格式不正确,导致文件之后永远不会被删除?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

一旦您离开范围,文件将被关闭,而不是被删除。之后您将需要明确删除该文件,例如。使用https://docs.python.org/3/library/os.html#os.unlink:

with open('test.csv', 'w') as file:
    # whatever you need to do
    pass
os.unlink('test.csv')

顺便说一句,您可能正在寻找类似https://docs.python.org/3/library/tempfile.html 的东西;见https://stackoverflow.com/a/8577226/1683161

【讨论】:

    【解决方案2】:

    文件已关闭但未删除。 您必须手动删除它。

    os.remove("test.csv")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 2017-08-21
      • 1970-01-01
      • 2011-09-13
      相关资源
      最近更新 更多