【问题标题】:using python os.system for 2 process将 python os.system 用于 2 个进程
【发布时间】:2013-08-21 08:45:07
【问题描述】:

我想依次运行两条命令:

  1. 首先进入 /var/tmp/test 文件夹
  2. 然后svn checkout在这里

为了做到这一点,我编写了这个脚本:

open_folder = "cd /var/tmp/%s" % (folder_name)
cmd = "%s %s/%s/%s && %s %s/%s/%s" % (svn_co, svn_co_directory, fst_product_name, fst_firmware_name, svn_co, svn_co_directory, snd_product_name, snd_firmware_name) 
    os.system(open_folder)
    os.system(cmd)

它会创建folder_name,但不会签出到folder_name。它签出到我当前的目录。为什么?

【问题讨论】:

    标签: python svn command system


    【解决方案1】:

    尝试os.chdir(path) 更改目录。或者,您可以在第二个命令中使用该文件夹作为前缀。 This 解释了为什么 cd 不起作用。

    我更喜欢使用subprocess.Popen(..) 而不是 os.system。它允许为您执行的命令指定当前工作目录。

    【讨论】:

    • 感谢您的评论。我看了你发来的解释。我想再问一个问题。你知道什么是流程和子流程吗?我的意思是它们有什么不同?
    • 我不确定你的问题是否正确。如果你启动你的 python 程序,它的执行是操作系统中的一个进程。通过执行cd 之类的命令,您可以调用另一个可执行文件。该可执行文件在自己的进程中运行,该进程是您的 python 程序的子进程,因为您在其中调用了它。我希望这能回答你的问题。如果有人更了解,请纠正我。
    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2017-11-29
    • 2012-03-15
    • 1970-01-01
    • 2019-08-18
    • 2017-11-27
    相关资源
    最近更新 更多