小编jer*_*mes的帖子

python创建临时文件namedtemporaryfile并在其上调用子进程

我无法生成临时文件并在之后执行它.我的过程看起来很简单: - 使用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.我应该如何使用临时文件来执行它?

python subprocess temporary-files

10
推荐指数
1
解决办法
3076
查看次数

使用 fmtlib,当值为负时,零填充数值更短,我可以调整这种行为吗?

我正在使用fmtlib来格式化字符串和数值,但我对负整数有问题。当我用零填充值时,无论值的符号如何,我都希望有一个一致的零数。

例如,使用 4 的填充,我想要以下内容:

  • 2 返回为“0002”
  • -2 将作为“-0002”返回

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

有没有办法切换这种行为或以不同的方式填充零值以获得我的预期结果?

谢谢你的帮助,

c++ negative-number zero-padding fmt

5
推荐指数
1
解决办法
378
查看次数