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?