subprocess模块:对tempfile对象使用call方法

2024-06-26 14:58:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我用tempfile库名为dtemporaryfile方法创建了临时命名文件。 我已经写信给他们冲洗了缓冲器,我没有关上它们(否则它们可能会消失)

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

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

os.path.exists(f.name)始终返回true。 我可以直接从shell对文件运行cat命令。在

subprocess模块不能处理临时文件是不是有什么原因?在

有什么办法可以让它工作吗?在

提前谢谢。在


Tags: 模块文件方法name命令shellcalltempfile
2条回答

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

为什么不使用可选参数delete=False来生成你的NamedTemporaryFile?这样你就可以在知道它们不会消失的情况下安全地关闭它们,之后正常使用它们,完成后显式地取消它们的链接。这样一来,所有的东西都可以跨平台工作。在

相关问题 更多 >