Пакеты Python. Импортируйте sys 'vs' из sys import argv ' - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь использовать argv в своем скрипте на python. Для этого я использую следующий код:

from sys import argv
script, file_name = argv
print(file_name)

python3 e.py e.txt Этот код отлично работает.

Но когда я использую:

import sys

и попробуйте использовать 'argv', я получаю ошибку:

'NameError: имя' argv 'не определено'.

Я не понимаю этого, так как импорт полного модуля 'sys' становится пригодным для использования в моем коде.

Можете ли вы объяснить, почему это происходит? Как работают пакеты?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Импорт sys не дает вам прямого доступа ни к одному из имен внутри sys. Чтобы получить доступ к ним, нужно поставить перед ними префикс sys:

sys.argv
sys.exit()

Если вы хотите использовать argv вместо sys.argv, попробуйте

from sys import *
0 голосов
/ 30 июня 2018

@ Aman , взгляните на следующие 2 примера кода.

Проверьте это красивое https://www.python.org/dev/peps/pep-0008/?#imports для получения дополнительной информации о импорте .

sys_file_name.py "

import sys

import sys

script, file_name = sys.argv;

print(script, file_name);

Вывод "

E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name.py  file1.txt
sys_file_name.py file1.txt

sys_file_name2.py "

из sys import argv

from sys import argv

script, file_name = argv;

print(script, file_name);

Вывод "

E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name2.py file2.txt
sys_file_name2.py file2.txt
...