我正在尝试修改允许将wiki页面下载到word文档的trac插件。 pagetodoc.py在此行引发异常:
# Call the subprocess using convenience method
retval = subprocess.call(command, shell=True, stderr=errptr, stdout=outptr, close_fds = True)
说Windows上不支持close_fds
。该过程似乎在C:\ Windows \ Temp中创建了一些临时文件。我尝试删除close_fds
参数,但随后文件子进程写入无限期保持打开状态。然后在稍后写入文件时抛出异常。这是我第一次使用Python,我不熟悉这些库。由于大多数人可能在Unix机器上编码,因此更加困难。我有什么想法可以重写这段代码吗?
谢谢!
答案 0 :(得分:0)
close_fds
is supported on Windows (在该链接后搜索“close_fds”)(如果stdin
/ stdout
/ {{ 1}}未被重定向)。您可以考虑升级。
投票后更新2017-11-16(为什么?):来自关联的文档:
请注意,在Windows上,您不能将close_fds设置为true 通过设置stdin,stdout或stderr来重定向标准句柄。
因此,您stderr
可以subprocess.call
而不是设置close_fds = True
,stdin
或stdout
(默认设置)(或将其设置为{{1} }}):
stderr
或None
与subprocess.call(command, shell=True, close_fds = True)
:
subprocess.call
或(Python> = 3.2)您让close_fds = False
单独找出subprocess.call(command, shell=True, stderr=errptr, stdout=outptr, close_fds = False)
的值:
subprocess.call