我无法生成临时文件并在之后执行它.我的过程看起来很简单: - 使用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.我应该如何使用临时文件来执行它?
我正在使用fmtlib来格式化字符串和数值,但我对负整数有问题。当我用零填充值时,无论值的符号如何,我都希望有一个一致的零数。
例如,使用 4 的填充,我想要以下内容:
fmtlib 的默认行为是在填充长度中考虑前缀长度(即符号“-”),这意味着 -2 返回为“-002”
下面是一个例子:
#include <iostream>
#include "fmt/format.h"
int main()
{
std::cout << fmt::format("{:04}", -2) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
将输出: -002
有没有办法切换这种行为或以不同的方式填充零值以获得我的预期结果?
谢谢你的帮助,