3

我使用临时文件库 NamedTemporaryFile 方法创建了临时命名文件。我已经写信给他们刷新了缓冲区,但我没有关闭它们(否则它们可能会消失)

我正在尝试使用该subprocess模块来使用这些生成的文件调用一些 shell 命令。

subprocess.call('cat %s' % f.name)总是失败说命名的临时文件不存在。

os.path.exists(f.name)总是返回真。我可以直接从 shell 对文件运行 cat 命令。

是否有某些原因该subprocess模块不适用于临时文件?

有什么办法让它工作吗?

提前致谢。

4

2 回答 2

3

为什么不NamedTemporaryFile使用可选参数制作 s delete=False?这样您就可以安全地关闭它们,知道它们不会消失,之后正常使用它们,并在完成后明确取消链接。这样,一切也将跨平台工作。

于 2009-06-26T15:16:49.907 回答
1

您是否在子进程中使用 shell=True 选项?

于 2009-06-26T15:16:02.140 回答