如何从python执行“/<script\u name>”?

2024-06-17 10:45:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在编写一个python脚本,它将自动生成在我的项目下的各个目录中的文件。目录结构如下:

                Repository
                  |
                  |
            _____ |_____
           |            |
         Builds        src
           |            |
         __|__        __|__
   Scripts   xyz     abc   3rdpartytools
    |                          |
    conf                     boost
    |                          |
script1.py                     b2

script1.py是我的python文件,我要执行的所有make文件都位于3rdpartytools目录下。boost目录只是一个例子。现在,我想执行文件b2。从外壳上看,/b2起作用。你知道吗

我试过用子流程调用从python文件。我试过了

call(["cd"," ../../../src/3rdpartytools/boost;./b2"])但是我得到了/usr/bin/cd: line 2: cd: ../../../src/3rdpartytools/boost/b2: No such file or directory

当我从shell执行相同的命令时,效果很好。你知道吗

Python2.7和CentOS。你知道吗


Tags: 文件项目pysrc目录脚本repositoryscripts
1条回答
网友
1楼 · 发布于 2024-06-17 10:45:24

您以多种方式错误地使用了subprocess.callsubprocess.call实际上不会调用shell,除非您特别要求它调用。因此,符号;没有特殊意义。因为它与路径在同一个字符串中,所以您可以尝试将cd转换为../../../src/3rdpartytools/boost;./b"而不是执行cd,然后执行函数。你知道吗

使用os.chdir转到相应的目录,然后使用subprocess.call(["./b2"])调用./b2。你知道吗

相关问题 更多 >