Python 创建临时目录以存储计算中使用的文件

Python 创建临时目录以存储计算中使用的文件,python,language-agnostic,filesystems,temp,Python,Language Agnostic,Filesystems,Temp,python脚本从数据库下载2个表,进行一些计算并创建一个新表,然后上载。这涉及到中间文件,为了存储所有文件,我在当前工作目录中创建了一个名为“temp”的文件夹。在程序退出之前,它会删除temp。这不太好,因为 如果已经有一个名为temp的文件夹,它将被删除 如果程序在删除临时文件的最后一步之前崩溃,那么下次程序运行时会崩溃,因为在上一次执行时存在同名文件 我想这是一种比较常见的情况。通常如何处理 对此有一个公正的解释 import tempfile new_dir = tempfile.mk

python脚本从数据库下载2个表,进行一些计算并创建一个新表,然后上载。这涉及到中间文件,为了存储所有文件,我在当前工作目录中创建了一个名为“temp”的文件夹。在程序退出之前,它会删除temp。这不太好,因为

  • 如果已经有一个名为temp的文件夹,它将被删除
  • 如果程序在删除临时文件的最后一步之前崩溃,那么下次程序运行时会崩溃,因为在上一次执行时存在同名文件
  • 我想这是一种比较常见的情况。通常如何处理

    对此有一个公正的解释

    import tempfile
    new_dir = tempfile.mkdtemp() #makes a new temp folder guaranteed to be unique(in the os-specific temp location)
    ...
    os.remove(new_dir)
    

    真的,我认为你甚至不需要删除新的目录,因为它将在下次重新启动时自动运行通常(*我认为)

    要解决1,只需将文件夹命名为比
    temp
    更具体的名称。您可能还想添加一个检查,查看文件是否已经存在,并可能覆盖/删除它们。使用try/finally或
    atexit
    处理程序调用
    os.remove()
    。您可以使用
    dir
    参数在当前目录中创建临时目录。