首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭临时文件后,是否可以依靠临时文件保持不变?

关闭临时文件后,是否可以依靠临时文件保持不变?
EN

Stack Overflow用户
提问于 2018-07-15 17:33:33
回答 1查看 220关注 0票数 2

我使用一个临时文件在两个进程之间交换数据:

  1. 我创建一个临时文件并将一些数据写入其中。
  2. 我启动一个读取和修改文件的子进程。
  3. 我从文件中读取结果

为了演示起见,下面是一段代码,它使用一个子进程来增加一个数字:

代码语言:javascript
复制
import subprocess
import sys
import tempfile

# create the file and write the data into it
with tempfile.NamedTemporaryFile('w', delete=False) as file_:
    file_.write('5')  # input: 5

    path = file_.name

# start the subprocess
code = r"""with open(r'{path}', 'r+') as f:
    num = int(f.read())
    f.seek(0)
    f.write(str(num + 1))""".format(path=path)
proc = subprocess.Popen([sys.executable, '-c', code])
proc.wait()

# read the result from the file
with open(path) as file_:
    print(file_.read())  # output: 6

正如您在上面看到的,我使用tempfile.NamedTemporaryFile(delete=False)来创建文件,然后关闭它,然后重新打开它。我的问题是:

这是可靠的,还是在我关闭临时文件后,操作系统会删除它?或者可能该文件被重用到另一个需要临时文件的进程?有什么东西会毁了我的数据吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 17:41:19

文件上没有说。操作系统可能会在一段时间后自动删除文件,这取决于如何设置文件和使用什么目录。如果您想要持久化,请使用持久性代码:使用常规文件,而不是临时文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51350603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档