我有一堆不同的文本文件,我正在尝试将文本排序到一个文件中。我正在使用python的子进程,我编写了以下代码
command_line = "sort -m 1.txt 2.txt > a.txt"
args = shlex.split(command_line)
subprocess.call(args)
并且subprocess.call(args)返回2作为结果,并且没有在a.txt中写入任何内容。我的代码出了什么问题?
答案 0 :(得分:0)
如果要在命令行中使用shell重定向操作符>
,则必须将shell=True
传递给subprocess.call
。否则,'>'和' a.txt'作为命令行参数传递给sort
。使用shell=True
,命令行将传递给实际的shell并由其解释,因此您不应该shlex.split
它。使用os.system
代替subprocess.call
可能更容易,{{1}}默认使用shell。