题
我已创建的临时命名的文件,与该临时文件库NamedTemporaryFile方法。 我已经写信给他们缓冲器被刷新,而且我还没有关闭它们(否则有可能消失)
我试图使用subprocess
模块使用这些生成的文件来调用一些外壳命令。
subprocess.call('cat %s' % f.name)
总是失败说,命名的临时文件不存在。
os.path.exists(f.name)
总是返回true。
我可以在文件直接从壳运行cat命令。
是有一些原因的subprocess
模块不会与临时文件?
有没有什么办法让它工作吗?
预先感谢。
解决方案
正在使用的子壳= true选项吗?
其他提示
你为什么不带可选参数NamedTemporaryFile
让你delete=False
s?这样,你可以安全地关闭他们知道他们是不会消失的,以后正常使用它们,并明确取消它们的链接时,即可大功告成。这样,一切都将跨平台工作了。
不隶属于 StackOverflow