jer*_*mes 10 python subprocess temporary-files
我无法生成临时文件并在之后执行它.我的过程看起来很简单: - 使用tempfile.NamedTemporaryFile创建临时文件 - 将bash指令写入文件 - 启动子进程以执行创建的文件
这是实施:
from tempfile import NamedTemporaryFile
import os
import subprocess
scriptFile = NamedTemporaryFile(delete=True)
with open(scriptFile.name, 'w') as f:
f.write("#!/bin/bash\n")
f.write("echo test\n")
os.chmod(scriptFile.name, 0777)
subprocess.check_call(scriptFile.name)
Run Code Online (Sandbox Code Playgroud)
我得到 OSError: [Errno 26] Text file busy子进程check_call.我应该如何使用临时文件来执行它?
jer*_*mes 10
正如jester112358指出的那样,它只需要关闭文件.我期待着为我做这个背景:
这是一个修复
from tempfile import NamedTemporaryFile
import os
import subprocess
scriptFile = NamedTemporaryFile(delete=True)
with open(scriptFile.name, 'w') as f:
f.write("#!/bin/bash\n")
f.write("echo test\n")
os.chmod(scriptFile.name, 0777)
scriptFile.file.close()
subprocess.check_call(scriptFile.name)
Run Code Online (Sandbox Code Playgroud)