我已经使用临时文件库NamedTemporaryFile方法创建了临时命名文件。 我已写信给他们冲洗缓冲区,我没有关闭它们(否则它们可能会消失)
我正在尝试使用subprocess
模块使用这些生成的文件调用一些shell命令。
subprocess.call('cat %s' % f.name)
始终无法说明指定的临时文件不存在。
os.path.exists(f.name)
始终返回true。
我可以直接从shell运行cat命令。
是否有某些原因subprocess
模块无法使用临时文件?
有没有办法让它发挥作用?
提前致谢。
答案 0 :(得分:3)
为什么不使用可选参数NamedTemporaryFile
制作delete=False
个?这样你就可以安全地关闭它们,知道它们不会消失,之后正常使用它们,并在你完成后明确取消链接。这样一切都将跨平台工作。
答案 1 :(得分:1)
您是否正在为子流程使用shell = True选项?