Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: pass sys.argv when loading python script with subprocess.Popen

I have a script that opens a file using subprocess.Popen so I can run it in the background. I would like to be able to run this script with ./[script] [params]

#!/usr/bin/python
import subprocess
import sys
sys.path.insert(0,"./pyqt")
import gui

if __name__ == "__main__":
    subprocess.Popen(["python", "./pyqt/gui.py"])

gui.py can take parameters when being ran from a terminal by using sys.argv. Below is how I am accessing these params in gui.py

def main(*args):
    print(args)

if __name__ == "__main__":
    main(sys.argv)

How can I pass sys.argv into subprocess.Popen?

like image 775
APorter1031 Avatar asked Nov 20 '25 05:11

APorter1031


1 Answers

Just forward/concatenate the arguments in the subprocess.Popen() call:

if __name__ == "__main__":
    subprocess.Popen(["python", "./pyqt/gui.py"] + sys.argv[1:])
like image 168
zwer Avatar answered Nov 22 '25 17:11

zwer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!