将文件从Popen重定向到子目录

时间:2015-06-05 13:51:35

标签: python redirect subprocess stdout popen

我有一个由许多脚本组成的管道。几乎所有脚本都对文件进行读写操作,并且管道中的一些脚本具有冲突的文件格式(它们将读取并尝试对文件执行操作,因为这些文件都具有相同的扩展名并且位于相同的直接)。这些脚本从一个包装器脚本执行,该脚本使用subprocess.Popen以适当的顺序调用它们。例如。: subprocess.Popen("python file_processing.py " + i + " " + deliminator, shell=True).wait()。我需要做的是将从该Popen输出的所有文件发送到特定目录(当前目录的子目录)。我试过玩stdout,但还没有运气。

1 个答案:

答案 0 :(得分:0)

如果您无法更改输出文件名,例如,将它们作为参数传递给子进程,或者将输出目录指定为参数,则尝试在不同的目录中运行子进程:

from subprocess import check_call

check_call(args, cwd="subdir")

确保args使用绝对路径,以便找到输入文件。

更好的选择是import the modules and call specific functions with necessary parameters instead