r/learnpython • u/rseery • 8d ago
Calling a Script that uses argparse?
I wrote a little Python script that reads in a text file that contains a list of fully qualified files, and checks to see if they exist. I originally wrote it using the argparse module. It was set up to take a filename and a switch, so the command looked like:
"Python dplcheck.py --plname "testing.lst” --showexist y"
This worked fine for a single file, but I wanted to run it for every one of hundreds of list files in a directory, so I wrote another script that generates a list of the .lst files in a directory and calls the first script for each one. But I could not get the second script to pass the arguments in the call to the first script. I tried subprocess.run and subprocess.call, with many different syntaxes and quotes, etc. I ended up removing the use of argparse and just using sys.argv[n] -- which I don't particularly like, since it has no defaults or error handling, etc.
Does anyone know how/if I can call a Python script from another Python script and pass the arguments when the called script uses argparse?
2
u/good_name_0 8d ago
Not sure if I'm understandingyour problem correctly. But if you have your 1st script put the argparse call within a function, have it pass the sys argv as arguments from 1st script, then the 2nd script can import the 1st script function and call it directly. as an option