0

我在将命令/命令与 os.system 的一个实例一起使用时遇到问题。

不幸的是,我必须使用 os.system,因为我无法控制它,因为我将字符串发送到 os.system 方法。我知道我真的应该为我的案例使用 subprocess 模块,但这不是一个选项。

所以这就是我想要做的。

我有一个如下字符串:

cmd = "export BASE_PATH=`pwd`; export fileList=`python OutputString.py`; ./myscript --files ${fileList}; cp outputfile  $BASE_PATH/.;"

然后这个命令像这样被发送到 os.system 模块

os.system(cmd)

不幸的是,当我查阅我的日志文件时,我得到的东西看起来像这样

os.system(r"""export BASE_PATH=/tmp/bla/bla; export fileList=; ./myscript --files ; cp outputfile  /.;""")

如您所见,BASE_PATH 似乎正在工作,但是当我使用 cp 输出文件 /. 我得到一个空字符串

同样使用我的 fileList 我得到一个空字符串,因为 fileList=python OutputString.py应该打印出一个文件列表到这个变量。

我的想法:

这些错误是由于每个命令的新进程造成的吗?因此,我在下一个命令中松开了 BASE_PATH 中的变量。

同样因为我不确定为什么 fileList 是空的。

使用 os.system 和我的命令字符串是否可以解决我的上述问题?

请注意我必须使用 os.system 模块。这是我无法控制的。

4

0 回答 0