在temp(tempfile)中执行文件

时间:2016-05-28 16:08:24

标签: python

我试图编写一个python脚本,在Temp文件夹中创建一个临时文件(另一个python脚本)。然后它应该继续执行这个临时文件。

我写了这样的话:

 with tempfile.TemporaryFile(mode='w+b', suffix='.py') as temp:
    stuff stuff stuff
    temp.write(mycode.encode('utf-8'))
    temp.seek(0)
    os.system(temp.name)

当我运行它时,我得到了

The process cannot access the file because it is being used by another process.

错误。我尝试使用tempfile.mkstemp(希望"关闭"函数可以处理这个),但没有任何改变。

所以我的问题是:如何在temp文件夹中创建文件,python脚本,执行它,然后将其删除?

感谢您的回答:D

1 个答案:

答案 0 :(得分:1)

os.system(temp.name)行应该在with关闭之外。

然而,这样做不起作用,因为那时文件将被移除,因此您需要将参数delete=False传递给TemporaryFile()

最好考虑使用NamedTemporaryFile