Is it possible to pass arguments to a python made exe at runtime?

python

Solution

Yes, you can do it with `sys.argv`. Check out this link: http://docs.python.org/library/sys.html#sys.argv. But remember not to forget `import sys`, and then you can use it. import sys

# If there is an argument passed to your file
if len(sys.argv) > 1:
    # argv[1] has your filename
    filename = sys.argv[1]
    print (filename)

# Output...
# new-host:~ yanwchan$ python3.2 test.py text.txt
# text.txt

`argv[0]` has `test.py`

`argv[1]` has `text.txt`

Edit: However, I do some more research on this topic and found out this: https://stackoverflow.com/a/4188500/1276534

As katrielalex points out, maybe you can look into `argparse` as well.? It provides a lot more functionality as well as safety check. Interesting information.

And here is a great tutorial: http://www.doughellmann.com/PyMOTW/argparse/

Problem

I'm experimenting with file I/O. I have a small practice program that creates a text file when run. I packaged it with pyinstaller so that double clicking on the exe creates a new folder and places a text file with "hello world" inside of it. Easy peasy. Then I started wondering about `main()`. This is just a function like any other, right? So does that mean I can pass arguments to it at runtime? I was thinking about the Steam client and how you can put stuff like '-dev' and '-console' in the shortcut. Is there a way to do this to a python exe that I have made? I may be explaining terribly, so here's an example: ``` def makeFile(string): if string: f = open('mytext.txt', 'w') #create text file in local dir print >> f, 'hello, ' + string + '! \nHow are ya?' f.close() else: f = open('mytext.txt', 'w') #create text file in local dir print >> f, 'hello, person! \nHow are ya?' f.close() def main(string = None): makeFile(string) ``` So if I take this code and make it an exe, would I be able to add my optional arguments somehow. I tried the above code, and the running `test.exe --"myname"` but that didn't work. Is there a way to do this?

Original source

Related problems