为什么我不能"import sys.argv[1]"?
Why can't I do "import sys.argv[1]"?
我创建了一个名为 parameter.py 的模块,并希望使用 sys.argv 导入它,如下所示。
import sys
from sys.argv[1] import *
但是当我 运行 python 文件时,我得到以下错误:
python test.py parameter
File "test.py", line 17
from sys.argv[1] import *
^
SyntaxError: invalid syntax
为什么它不起作用,我还能做些什么来让它起作用?
import 语句
中不允许使用变量
import sys
__import__(sys.argv[1])
全球导入
import sys
globals().update(__import__(sys.argv[1]).__dict__)
示例用法
import sys
sys.argv.append("math")
pi = __import__(sys.argv[-1]).pi
print(pi)
或
import sys
sys.argv.append("math")
globals().update({k: v for k, v in __import__(sys.argv[-1]).__dict__.items() if not k.startswith("__")})
print(pi)
print(__name__)
输出
3.141592653589793
__main__
我创建了一个名为 parameter.py 的模块,并希望使用 sys.argv 导入它,如下所示。
import sys
from sys.argv[1] import *
但是当我 运行 python 文件时,我得到以下错误:
python test.py parameter
File "test.py", line 17
from sys.argv[1] import *
^
SyntaxError: invalid syntax
为什么它不起作用,我还能做些什么来让它起作用?
import 语句
中不允许使用变量import sys
__import__(sys.argv[1])
全球导入
import sys
globals().update(__import__(sys.argv[1]).__dict__)
示例用法
import sys
sys.argv.append("math")
pi = __import__(sys.argv[-1]).pi
print(pi)
或
import sys
sys.argv.append("math")
globals().update({k: v for k, v in __import__(sys.argv[-1]).__dict__.items() if not k.startswith("__")})
print(pi)
print(__name__)
输出
3.141592653589793
__main__