sys.argvДля доступа к параметрам командной строки в программах на Python используется
список sys.argv, доступный из библиотечного модуля sys. Для подключения
модуля нужно добавить строчку
import sys
в начало программы.
Нулевым элементом списка sys.argv[0] является имя самой программы, остальные
элементы — параметры командной строки, указанные после имени программы.
Пример. Пусть у нас имеется следующая программа example.py:
import sys
print(sys.argv)
Тогда при запуске из консоли получим:
C:\Users\Mazdaywik>python example.py one two three
['example.py', 'one', 'two', 'three']
Список sys.argv нам сегодня потребуется при выполнении лабораторной работы.
Нужно будет выполнить следующие действия и в конце занятия продемонстрировать окно консоли с процессом работы.
D:\TEMP:
C:\Users\User>D:
D:\>cd D:\TEMP
D:\TEMP>
Desktop.
На Windows:
C:\Users\‹ваше имя›>cd Desktop
C:\Users\‹ваше имя›\Desktop>
На Linux (оболочка Bash):
[‹ваше имя›@‹имя компьютера›:~]$ cd Desktop
[‹ваше имя›@‹имя компьютера›:~/Desktop]$
На macOS (оболочка Zsh):
‹ваше имя›@‹имя компьютера›:~ % cd Desktop
‹ваше имя›@‹имя компьютера›:~/Desktop %
Файлы, значки которых отображаются на рабочем столе, на самом деле лежат
в папке Desktop. И наоборот, если создать файл в папке Desktop, то его
значок отобразится на рабочем столе.
D:\TEMP или Desktop)
создайте папку lab6.lab6.example.txt
с произвольным текстом на английском языке. Например, таким:
To be, or not to be, that is the question;
Whether 'tis nobler in the mind to suffer
The Slings and Arrows of outrageous Fortune
Or to take arms against a sea of troubles,
And by opposing, end them.
На Windows используйте copy con example.txt, на macOS — cat > example.txt.
example.txt в файл copy.txt.dir или ls)copy.txt.lab6 файл show_file.py со следующим содержимым:
import sys
def show_file(filename):
with open(filename) as f:
for line in f:
print(line, end='')
if len(sys.argv) > 1:
show_file(sys.argv[1])
else:
print('No filename')
D:\TEMP\lab6>python show_file.py
…
D:\TEMP\lab6>python show_file.py example.txt
…
D:\TEMP\lab6>python show_file.py show_file.py
…
(На macOS вместо python следует использовать python3.)
show_file.py в num_file.py.num_file.py в среде IDLE (File → Open…), добавьте в программу
нумерацию строк (см. Лабораторную работу № 2, функцию
view_enumerated(filename)).D:\TEMP\lab6>python num_file.py
…
D:\TEMP\lab6>python num_file.py example.txt
…
D:\TEMP\lab6>python num_file.py show_file.py
…
D:\TEMP\lab6>python num_file.py num_file.py
…
lab6:
D:\TEMP\lab6>cd ..
D:\TEMP>
Если выводится сообщение «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом», значит, нужно закрыть открытые окна Python и блокнота с файлами, находящимися в этой папке.
lab6 в папку ‹ваши имя и фамилия›.На прошлом занятии вы остановились на одном из пунктов в списке выше
(большинство студентов на пункте 10), после чего выполнили пункт 15,
т.е. переименовали подпапку lab6 в папке D:\TEMP в папку ‹ваши имя
и фамилия›.
Для того, чтобы продолжить выполнять лабораторную работу с того места, где Вы остановились в прошлый раз, выполните следующие шаги:
D:\TEMP.D:\TEMP>rmdir /q /s lab6
Она удалит папку lab6, ошибочно оставленную студентом другой группы.
dir просмотрите содержимое текущей папки. Найдите
в выводе команды папку ‹ваши имя и фамилия›, созданную на предыдущем
занятии.lab6 (команда ren), перейдите
в неё (команда cd) и продолжайте выполнять предыдущую лабораторную
работу.