问题
A Python script that I want to use (called snakefood) is normally run from the commandline and takes commandline arguments, eg:
sfood /path/to/my/project
The parsing of the commandline arguments happens in a file called gendeps.py using optparse
. However, I want to use the snakefood module from another script. Is there a way I can somehow mock the passing of commandline arguments to snakefood
or a way of rewriting gendeps.py
so that it doesn't depend on optparse
anymore?
回答1:
You can always assign a new list to sys.argv
:
import sys
sys.argv = ['programname', '-iq', '-q', directory]
gendeps.gendeps()
optparse
uses sys.argv[1:]
as input when no explicit arguments have been passed in.
来源:https://stackoverflow.com/questions/24000444/mock-command-line-arguments-for-python-script-with-optparse