请教问题,怎么也才能使python执行完上一个命令,再执行下一条语句?

请教问题,怎么也才能使python执行完上一个命令,再执行下一条语句?

请教问题,怎么也才能使python执行完上一个命令,再执行下一条语句?就是先等os.popen()执行完,再执行下面的语句?
当我用一个循环时,就连续打开很多的进程,如何让os.popen()执行完,再进入下次循环呢?
    for thefile in thefiles:
        os.popen('F:\\video\\Encoder\\CMDApp.exe')
看不懂你写的东西
thefiles是什么?
你的意思是不是 每运行一次thefile
下一句都执行一次os.popen
for thefile in thefiles:
        os.popen(thefile)
这样应该可以
还说说
os.popen是阻塞的,不执行完不会执行下条语句的
更精确的控制查看 subprocess 模块
建议你用subprocess的Popen,比较容易控制,而且能得到更多的IO信息。subprocess.Popen()有个wait()表示等待子进程结束。
或者更简洁一点,如果你只是想执行一条外部命令,不想得到其他信息,可以用os.system()。os.popen好像在2.4还是2.5之后就不推荐使用了。
thefiles  是这样一个数组

['F:\\video\\video\\1634_1218952645.mp4', 'F:\\video\\video\\15403_1224907834.3gp', 'F:\\video\\video\\15403_1224907900.3gp', 'F:\\video\\video\\15403_1224907940.3gp', 'F:\\video\\video\\17819_1230866686.avi', 'F:\\video\\video\\20562_1231340781.mp4', 'F:\\video\\video\\26037_1222155983.avi', 'F:\\video\\video\\32570_1224486388.avi', 'F:\\video\\video\\32718_1227697742.rm', 'F:\\video\\video\\36519_1220788873.mpg', 'F:\\video\\video\\37057_1230190526.mp4']
程序是这样的  listFiles('F:\\video\\video', '*.mp4;*.avi;*.3gp;*.rmvb;*.rm;*.mpg;*.wmv;*.swf)是遍历'F:\\video\\video'目录下的文件,然后循环转化
if __name__ == '__main__':
    thefiles = listFiles('F:\\video\\video', '*.mp4;*.avi;*.3gp;*.rmvb;*.rm;*.mpg;*.wmv;*.swf')
    for thefile in thefiles:
        flvfile,exc=os.path.splitext(thefile)
        flvfile = flvfile+'.flv'
        os.popen('''F:\\video\\Encoder\\EncoderCMDApp.exe /src:"'''+thefile+'''" /dest:"'''+flvfile)
for thefile in thefiles:
    sub = os.popen('F:\\video\\Encoder\\CMDApp.exe')

默认只是一个Process执行的. 也就是按照顺序执行的;

如果你用
for thefile in thefiles:
    sub = subprocess.Popen('E:\\tmp\\py\\test.cmd')
    sub.wait();
这样是New出来新的Process然后执行. 可根据wait()等待上次的执行完毕后,继续NewProcess开始执行下一个.
正解,首先谢谢bohemia 提醒我跟踪了执行流程 os.popen(CMD)是顺序执行的,视频转化很费时的,在我执行时很快就连续打开了很多个转换文件,感觉就像多进程打开了一样,经跟踪执行流程发现是好多视频格式不对,当格式不对时就跳过去了,给我的错觉是多进程同时打开了。在这谢谢楼上的各位兄弟,添麻烦了
3楼正解,学习了