Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What is sysargv?
#1
(Something has changed here, I can't seem to mark Python code as code. Sorry!)

I was just looking at this, but I cannot understand what  this part really does:

 
n = 100
    if sys.argv[1:]:
        n = int(sys.argv[1])
That is to say, I don't understand the purpose of sys.argv or what exactly this does:
Quote:if sys.argv[1:]:

Why would I need the above? Why not just put:
n = 100
for i in range(n, 0, -1) ??
 
def myApp():
    import sys

    n = 100
    if sys.argv[1:]:
        n = int(sys.argv[1])

    def bottle(n):
        if n == 0: return "no more bottles of beer"
        if n == 1: return "one bottle of beer"
        return str(n) + " bottles of beer"

    for i in range(n, 0, -1):
        print(bottle(i), "on the wall,")
        print(bottle(i) + ".")
        print("Take one down, pass it around,")
        print(bottle(i-1), "on the wall.")
Reply
#2
sys.argv is a list of arguments passed when you start your program. sys.argv[0] is the name of your program. The rest are the parameters.
If your program, say demo.py is:

import sys
print(sys.argv)


... and you start your program with parameters:

./demo.py a b c

... then your output will be:
Output:
['./demo.py', 'a', 'b', 'c']
Pedroski55 likes this post
Reply
#3
Thanks!

What might I use syargsv for? How is it useful?
Reply
#4
(Oct-12-2020, 08:29 AM)Pedroski55 Wrote: Thanks!

What might I use syargsv for? How is it useful?

As explained - you can pass CLI arguments when you run your script. Of couse there are libraries that help write better CLI, but using sys.argv is the most basic approach to read CLI arguments.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020