从python类调用命令行

时间:2014-10-28 12:47:05

标签: python subprocess

我有一个类来获取文件,执行一些进程,并输出制表符分隔文件。 我需要对这个输出文件进行排序,最简单的方法是命令行:sort -k1,1 -k2,2n -k3,3n

但是,我想将它实现为一个python类。

我试过了:

from subprocess import call

# classA take input file, do something, output a file, named 'tmp_output'
class ClassA(object):
    def __init__(self,tmp_input,tmp_output):
        self.tmp_input = tmp_input
        self.tmp_output = tmp_output
        self.dosomething(tmp_input)

    def dosomething(self,tmp_input):
        outputfile = open(self.tmp_output,'w')
        #dosomething
        # something = ...
        outputfile.write(something)

# call this class to do something
a=ClassA('tmp_input','tmp_output') # this output a file called tmp_output

# Another class to sort tmp_output
class Sort(object):
    def __init__(self,tmp_output,output):
        self.tmp_output = tmp_output
        self.output = output

    def sort(self):
        call('sort -k1,1 -k2,2n -k3,3n self.tmp_output > self.output') # THIS STEP DOES NOT WORK

我的问题是如何调用sort -k1,1 -k2,2n -k3,3n,因为输入和输出来自类变量。

0 个答案:

没有答案