请教个问题: os.popen4 在有些电脑上运行正常(批处理内容能显示出来),而在有此电脑上不正常。

时间:2021-05-01 23:07:29
import os
f = os.popen4("dir")
l = f[1].readlines()
while l:
print l
l = f[1].readlines()
f[0].close()
f[1].close()

当然,实际中用的不是 "dir" 命令,而是一个批处理。

5 个解决方案

#1


第一,什么版本的Python?2.4引入了subprocess,不一样了

第二,哪个平台上的,Windows还是Unix

第三,很多时候,在Windows上,要用

DIR> python <script_name> [arg ... ]

来运行程序

#2


第一,什么版本的Python?2.4引入了subprocess,不一样了
>>> 2.1 版
第二,哪个平台上的,Windows还是Unix
>>> windows xp
第三,很多时候,在Windows上,要用

DIR> python <script_name> [arg ... ]

来运行程序
>>> 不是太懂
>>> 我是先 os.chdir("批处理所在目录")
>>> 然后用 os.popen4("批处理")
>>> 执行的
>>> 你说的是在命令行状态吧,我是取当前目录然后拼出要执行的命令路径执行的
>>>
>>> 还有,有时执行批处理时, Python 会突然关闭(使用 os.popen4 ),也一直没搞清楚为>>>啥,最开始认为是批处理有向 stderr 输出的内容,所以使用 os.popen4 ,现象有所好转,>>>但没有完全去除
>>>
>>> 谢谢楼上的答复 :)


#3


如果不用读写STDIN,STDOU的话可以用os.system

DIR> python <script_name> [arg ... ]
的意思是,如果你写了一个脚本叫abc.py,运行脚本的时候要 -x参数,那么你应该用

python abc.py -x

命令来启动脚本

你说的执行批处理的时候Python会突然关闭,我没碰到过,建议你使用高版本的Python,好像
python.org的主页上已经没有2.1的文档了。或许这里有bug也不一定。

#4


如果不用读写STDIN,STDOU的话可以用os.system
>>> 确却来说,我需要用 stdout 及 stderr
DIR> python <script_name> [arg ... ]
的意思是,如果你写了一个脚本叫abc.py,运行脚本的时候要 -x参数,那么你应该用

python abc.py -x

命令来启动脚本
>>> 懂了,3Q :)

你说的执行批处理的时候Python会突然关闭,我没碰到过,建议你使用高版本的Python,好像
python.org的主页上已经没有2.1的文档了。或许这里有bug也不一定。
>>> 我试了 2.4 版,一样的结果(会突然结束)
>>> 感谢您对我问题的答复

#5


不知道怎么给分,不好意思 shhgs() 
这个与最开始好象不一样了,过去是点“管理”就好了

#1


第一,什么版本的Python?2.4引入了subprocess,不一样了

第二,哪个平台上的,Windows还是Unix

第三,很多时候,在Windows上,要用

DIR> python <script_name> [arg ... ]

来运行程序

#2


第一,什么版本的Python?2.4引入了subprocess,不一样了
>>> 2.1 版
第二,哪个平台上的,Windows还是Unix
>>> windows xp
第三,很多时候,在Windows上,要用

DIR> python <script_name> [arg ... ]

来运行程序
>>> 不是太懂
>>> 我是先 os.chdir("批处理所在目录")
>>> 然后用 os.popen4("批处理")
>>> 执行的
>>> 你说的是在命令行状态吧,我是取当前目录然后拼出要执行的命令路径执行的
>>>
>>> 还有,有时执行批处理时, Python 会突然关闭(使用 os.popen4 ),也一直没搞清楚为>>>啥,最开始认为是批处理有向 stderr 输出的内容,所以使用 os.popen4 ,现象有所好转,>>>但没有完全去除
>>>
>>> 谢谢楼上的答复 :)


#3


如果不用读写STDIN,STDOU的话可以用os.system

DIR> python <script_name> [arg ... ]
的意思是,如果你写了一个脚本叫abc.py,运行脚本的时候要 -x参数,那么你应该用

python abc.py -x

命令来启动脚本

你说的执行批处理的时候Python会突然关闭,我没碰到过,建议你使用高版本的Python,好像
python.org的主页上已经没有2.1的文档了。或许这里有bug也不一定。

#4


如果不用读写STDIN,STDOU的话可以用os.system
>>> 确却来说,我需要用 stdout 及 stderr
DIR> python <script_name> [arg ... ]
的意思是,如果你写了一个脚本叫abc.py,运行脚本的时候要 -x参数,那么你应该用

python abc.py -x

命令来启动脚本
>>> 懂了,3Q :)

你说的执行批处理的时候Python会突然关闭,我没碰到过,建议你使用高版本的Python,好像
python.org的主页上已经没有2.1的文档了。或许这里有bug也不一定。
>>> 我试了 2.4 版,一样的结果(会突然结束)
>>> 感谢您对我问题的答复

#5


不知道怎么给分,不好意思 shhgs() 
这个与最开始好象不一样了,过去是点“管理”就好了