Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gauld A.Learning to program (Python)_1.pdf
Скачиваний:
21
Добавлен:
23.08.2013
Размер:
1.34 Mб
Скачать

Command Line Parameters

One other type of input is from the command line. For example when you run your text editor like:

EDIT Foo.txt

How does the editor read the filename?

In most languages the system provides an array or list of strings containing the command line words. Thus the first element will contain the command itself, the second element will be the first argument, etc. There is usually some kind of magic variable that holds the number of elements in the list.

In Python that list is held by the sys module and called argv (for 'argument values'). We can extract the elements using indexing or by iterating over the list, thus:

import sys

for item in sys.argv: print item

print "the first argument was:", sys.argv[1]

Note that this only works if you put it in a file (say args.py) and execute it from the operating system prompt like this:

C:\Python\PROJECTS> python args.py 1 23 fred args.py

1

23 fred

thr first argument was: 1 C:\PYTHON\PROJECTS>

Tcl's Command line

Tcl has a similar scheme with 3 variables:

argv0 - the command name,

argv - a string containing the rest of the command line and

argc - containing the number of words in argv

An example of accessing the command line arguments in Tcl is:

puts "the command was: $argv0"

puts "The first argument was: [lindex $argv 0]"

Once again you will need to run this as a script from the operating system command prompt and provide some sample arguments.

And BASIC

While Tcl does not appear to have an 'input' equivalent, BASIC does not seem to have an argv equivalent although it would be possible to use operating system features to access them - for example they are stored in an environment variable under DOS so you can use the GETENV function. That's far too advanced for this course however and I recommend that in BASIC programs you prompt the user for the values interactively.

49

That's really as far as we'll go with user input in this course. It's very primitive but you can write useful programs with it. In the early days of Unix or PCs it's the only kind of interaction you got. Python, Tcl and BASIC (in its 'Visual' incarnation) are all capable of writing sophisticated GUI programs with windows, dialogs etc... but that's a bit too advanced for this course. Having said that the case study does provide a brief example of getting input via a GUI in Python but we won't be explaining too much about how it works. There are Web tutorials available for doing that once you get a good grounding in the essentials, I'll list some of them in the references page.

Points to remember

Use input for reading numbers, raw_input for reading characters/strings.

Both input and raw_input can display a string to prompt the user.

BASIC's INPUT command can be used for any type of data.

Command line parameters can be obtained from the argv list imported from the sys module in Python, where the first item is the name of the program.

TCL uses the similarly named argv list to get it's command line data, but the program name is in the separate argv0

The __name__ variable will be set to "__main__" if the module has been run from the command line (or double clicked in Windows).

50