Python包“导入sys”vs“从sys导入argv”
我正试图在python脚本中使用“argv”。 为此,我使用以下代码:Python包“导入sys”vs“从sys导入argv”,python,python-3.x,packages,Python,Python 3.x,Packages,我正试图在python脚本中使用“argv”。 为此,我使用以下代码: from sys import argv script, file_name = argv print(file_name) python3 e.py e.txt 这段代码运行良好 但当我使用: import sys 并尝试使用“argv”,我得到错误: 'NameError:未定义名称'argv' 我不理解这一点,因为通过将“sys”完整模块导入到我的代码中就可以使用了 你能解释一下为什么会发生这种情况吗?软件包如何工
from sys import argv
script, file_name = argv
print(file_name)
python3 e.py e.txt
这段代码运行良好
但当我使用:
import sys
并尝试使用“argv”,我得到错误:
'NameError:未定义名称'argv'
我不理解这一点,因为通过将“sys”完整模块导入到我的代码中就可以使用了
你能解释一下为什么会发生这种情况吗?软件包如何工作
谢谢。@Aman,看看下面的两个代码示例
有关导入的详细信息,请查看此链接
sys_file_name.py»
导入系统
输出»
E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name.py file1.txt
sys_file_name.py file1.txt
E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name2.py file2.txt
sys_file_name2.py file2.txt
系统文件名称2.py»
从系统导入argv
输出»
E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name.py file1.txt
sys_file_name.py file1.txt
E:\Users\Rishikesh\Python3\Practice\SysFileName>python sys_file_name2.py file2.txt
sys_file_name2.py file2.txt
Import sys不允许您直接访问sys本身中的任何名称 要访问这些文件,您需要使用sys作为前缀:
sys.argv
sys.exit()
如果要使用argv而不是sys.argv,请尝试
from sys import *
你是如何尝试使用argv的?您是否尝试过导入系统;脚本,file_name=sys.argv?您必须从sys导入*,或者保留当前导入sys并使用sys.argv。我不推荐第一个,因为它会导致严重的名称空间污染,或者在Python.import sys中被称为什么;printlendirsys是83岁。这是我想导入的最后一个模块。请不要这样建议。只需将脚本、文件名=argv替换为脚本、文件名=sys.argv,它就会工作。你需要完全引用。这是非常糟糕的格式。此外,您不需要在Python代码上到处都放分号。