Exemple #1
0
    def executeAsync(self, command, *args):
        # process.stdin, .stdout, stderr        #Note: remember to flush()
        #       .stdin.write(data) .stdin.flush()
        #       .stdout.read([amount]), .stdout.readline()
        #   .poll() -> None (still processing) or returncode (int)
        #   .kill()
        #   .communicate(input) -> (stdoutData, stderrData)  Note: waits until the process has finished
        #                                   Also closes input and output streams
        #   .returncode
        #   -ADDED-
        #   .close() To close all input and output streams
        #   .processing() -> True while still processing
        args.insert(0, command)
        process = Popen(args=args,
                        executable=command,
                        stdin=PIPE,
                        stdout=PIPE,
                        stderr=PIPE)

        def close():
            process.stdoutData, process.stderrData = process.communicate()

        process.close = close

        def processing():
            return process.poll() == None

        process.processing = processing

        def write(data):
            process.stdin.write(data)

        return process
 def executeAsync(self, command, *args):
     # process.stdin, .stdout, stderr        #Note: remember to flush()
     #       .stdin.write(data) .stdin.flush()
     #       .stdout.read([amount]), .stdout.readline()
     #   .poll() -> None (still processing) or returncode (int)
     #   .kill()
     #   .communicate(input) -> (stdoutData, stderrData)  Note: waits until the process has finished
     #                                   Also closes input and output streams
     #   .returncode 
     #   -ADDED-
     #   .close() To close all input and output streams
     #   .processing() -> True while still processing
     args.insert(0, command)
     process = Popen(args=args, executable=command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
     def close():
         process.stdoutData, process.stderrData = process.communicate()
     process.close = close
     def processing():
         return process.poll()==None
     process.processing = processing
     def write(data):
         process.stdin.write(data)
     return process