How to get the output from .jar execution in python codes?

前端 未结 3 361
一个人的身影
一个人的身影 2020-12-29 12:46

I\'m programming the python module that executes SQL to DBMS and retrieves data. I\'m trying to use jdbc jar files instead of native DB drivers. I\'m wondering how to execut

相关标签:
3条回答
  • 2020-12-29 13:09

    You could do :

    with open('output_of_jar.txt','w') as fp :
        subprocess.Popen('java -jar ./GET_DB_DATA.jar',stdout=fp).wait()
    with open('output_of_jar.txt') as f :
        output = f.read()
    print output
    

    Edit :

    stdout=fp means that the output of the command will be written to the file output_of_jar.txt

    Then you just have to read the contents of the file with :

    with open('output_of_jar.txt') as f :
        output = f.read()
    print output
    
    0 讨论(0)
  • 2020-12-29 13:10

    If you are using Linux you can use the os.system command:

    os.system("your_java_file > out_put_file")
    

    This command will execute the file and print the output to the out_out_file Then you can read the output file.

    0 讨论(0)
  • 2020-12-29 13:15

    You can read the output through pipe:

    >>> from subprocess import Popen, PIPE, STDOUT
    >>> p = Popen(['java', '-jar', './GET_DB_DATA.jar'], stdout=PIPE, stderr=STDOUT)
    >>> for line in p.stdout:
        print line
    

    As regards passing string to stdin, you can achieve it this way:

    >>> p = Popen(['cat'], stdin=PIPE, stdout=PIPE, stderr=STDOUT)
    >>> stdout, stderr = p.communicate(input='passed_string')
    >>> print stdout
    passed_string
    
    0 讨论(0)
提交回复
热议问题