Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 7377 / 1140 | Длительность: 09:49:00
Авторские права: Creative Commons Attribution 3.0
Лекция 15:

Автоматизация типичных задач на вашем компьютере

28.3. Аргументы командной строки

В предыдущих главах мы рассмотрели ряд программ, которые запрашивали у пользователя имя файла, используя функцию raw_input, и затем читали и обрабатывали данные из файла:

name = raw_input('Enter file:')
handle = open(name, 'r')
text = handle.read()
...
  

Можно несколько упростить подобные программы, получая имя файла из командной строки, которая используется при запуске программы на Питоне. До сих пор мы просто запускали программу и отвечали на ее запросы:

python words.py
Enter file: mbox-short.txt
...
  

В командной строке можно указать дополнительные подстроки после имени файла с программой Питона, их обычно называют аргументами командной строки. Вот простая программа, демонстрирующая чтение аргументов из командной строки:

import sys
print 'Count:', len(sys.argv)
print 'Type:', type(sys.argv)
for arg in sys.argv:
print 'Argument:', arg
  

Содержимое переменной sys.argv является списком строк, в котором первая строка – это имя Питон-программы, а следующие строки представляют собой аргументы командной строки, указанные в команде после имени файла с программой. Ниже приведен вывод нашей программы для конкретной командной строки:

python argtest.py hello there
Count: 3
Type: <type 'list'>
Argument: argtest.py
Argument: hello
Argument: there
  

Здесь 3 аргумента командной строки передаются нашей программе в виде трехэлементного списка. Первым элементом является имя программы (argtest.py), двумя другими (hello и there) – слова, указанные в команде после имени файла.

Можно переписать нашу программу, чтобы она читала файл, получая его имя из командной строки:

import sys
name = sys.argv[1]
handle = open(name, 'r')
text = handle.read()
print name, 'is', len(text), 'bytes'
  

В качестве имени файла берется второй аргумент командной строки (пропускается имя программы, соответствующее индексу [0]). Мы открываем файл, читаем его содержимое и печатаем его длину в байтах:

python argfile.py mbox-short.txt
mbox-short.txt is 94626 bytes
  

Использование аргументов командной строки облегчает повторное использование Питон-программ, особенно когда нужно вводить только одну или две строки.

Алексей Виноградов
Алексей Виноградов

Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе.

Петр Олейников
Петр Олейников

Данные файлы неоходимы не только для самостоятельных работ, но и для тестов. А по ссылкам в лекциях они не доступны, выдает ошибку 404.