我有一个python程序,可以动态地将文件移动并重命名为hadoop集群。这些文件通常从10MB(解析)到1.5GB(原始数据)。对于移动命令来完成它可能需要一段时间,从我可以告诉python比赛通过它们,并没有任何移动命令完成。让python等待以前的命令的正确方法是什么?我将这些命令存储在一个变量中,并将其传递给os.system。相关的代码是让Python等待命令结束
os.system(moverawfile)
os.system(renamerawfile)
os.system(moveparsedfile)
os.system(renameparsedfile)
我知道重命名命令基本上是即时完成的。我不应该使用os.system?我如何确保python在进入下一个命令前等待每个命令完成。
什么是您的确切代码? 'os.system'不会返回,直到它产生的命令退出。 – chepner
反正你应该使用['subprocess'](https://docs.python.org/2/library/subprocess.html)。例如,您可以在命令错误上引发异常。 – Kupiakos
os.system只是调用['system(3)'](http://linux.die.net/man/3/system),并等待命令完成。 – Kevin