除了像这样在两行单独的行中编写之外,还有其他方法可以编写它吗?
from os.path import isfile, isdir
from os import scandir # or import os.scandir
TL; DR你不能。如果您from os.path import <stuff>
想从os.path
.
当您只使用导入东西时,import
您只能导入模块(模块是包含 python 对象的 python 文件的术语)。要导入模块内部的对象,您from
可以遍历该模块,然后import <whateverObject>
从该文件中导入该对象(任何东西都是python中的对象,只要它在.py
文件中)。您使用的.
是(通常)遍历包内的目录(“子”包?)。
解释器如何知道要在包中包含哪个目录,或者如何将给定目录识别为包?__init__.py
它在里面寻找一个文件。如果它找到一个,它就是一个包,因此你可以导入它。
import
仅限于访问directories
,并且modules
最多,如果单独使用。使用时from <module_or_directory> import <objects>
,访问目录和/或模块的任务交给 afterfrom
子句,而后子句import
接管在模块内部查找 python 对象的任务。你看,这是两件不同的事情 - 1)访问文件系统下的文件/目录,以及 2)访问文件的内容,(特别是.py
文件),它在 python 的域下 - 在from-import
进口东西的风格。
在os
模块的情况下,os.path
是另一个.pyi
文件(在 Windows 上),在文件ntpath.pyi
中别名为. 由于它是一个模块,因此它位于 in 之后的子句中。而是模块中的一个函数,因此它在 in 之后的子句中。os.py
path
from
from os.path import isfile, isdir
scandir
os
import
from os import scandir
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句