5

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
  • Why don't you run it via subprocess.call? Commented Jun 2, 2014 at 17:55

1 Answer 1

17

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.

Sign up to request clarification or add additional context in comments.

1 Comment

This answer is helpful. Just a small improvement: import os sys.argv = [os.path.basename(__file__),, '-iq', '-q', directory]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.