Assign a value to a variable via terminal?


4 posts
by woodchop146 » Fri Jun 14, 2013 10:32 pm
Hello, I am met with a problem.
I have forged a form of brute force stress test for my Raspberry Pi, but I would like to be able to assign a value for how long it should run for via terminal, instead of having to edit the code.
Code: Select all
def fib(n):
    a, b = 0, 1
    while a < n:
        print a,
        a, b = b, a+b
fib(10**100**10**100)

Basically I would like to be able to type into terminal something like:
Code: Select all
python StressTest.py --fib(100)

Instead of having the preset
Code: Select all
fib(10**100**10**100

I'm not even sure if it is possible, so any guidance would be brilliant.
User avatar
Posts: 14
Joined: Fri Jun 14, 2013 9:27 pm
by DrMag » Sat Jun 15, 2013 2:11 am
You want to take a look at the sys module. Try this experiment by writing this to a file and running it with whatever arguments you would like:

Code: Select all
#!/usr/bin/env python
# test.py
import sys
print(sys.argv)


Code: Select all
$ python test.py one two three four
Posts: 61
Joined: Sat Jun 01, 2013 7:59 pm
by woodchop146 » Sat Jun 15, 2013 11:50 am
This is very reassuring that I can input while launching it, but is there a way to split an integer value from the input?
I am currently getting the output of "['test.py', 'pizza'], but this is definitely a step in the right direction.

EDIT: I have figured the last bit out, it was easier than I thought, all I had to do was declare sys.argv as an array.

Code: Select all
import sys
k, m = sys.argv
print k


Thank you very much, DrMag.
User avatar
Posts: 14
Joined: Fri Jun 14, 2013 9:27 pm
by davef21370 » Sat Jun 15, 2013 3:13 pm
That's a workaround but the "standard" way of handling it would be...
Code: Select all
import sys
n=sys.argv[1]
sys.argv[0] is the name of the program and sys.argv[1] and upwards are the arguments passed to the program.
Hope that clarifies things a little.

Dave.
Please feel free to tap into my abundant lack of knowledge.
User avatar
Posts: 520
Joined: Fri Sep 21, 2012 4:13 pm
Location: Up North