1. python源程序文件的扩展名为什么
源程序的扩展名是 .py
2. python命名空间包导入算法
要理解命名空间包,需从底层去学习包导入操作在Python 3.3中是如何完成的。在导入过程中,3.3版本与3.2和之前的版本一样,依旧会遍历模块搜索路径sys.path中的每个目录。然而,在3.3版本中,当对每个模块搜索路径中的directory搜索名为spam的被导人包时,Python会按照下面的顺序测试一系列更广的匹配条件:
1.如果找到directory\spaml_init__.py,便会导入一个常规包并返回。
2.如果找到directoryspam.ipy,pyc,或其他模块扩展名},便会导人一个简单模块并
返回。
3.如果找到文件夹directorylspam,便会将其记录下来,而扫描将从搜索路径中的下一
个目录继续。
4.如果上述的所有都没有找到,扫描将从搜索路径中的下一个目录继续。
如果搜索路径扫描结束后没有从上述步骤1和步骤2中返回一个模块或包,而同时在上述步骤3中至少记录了一个路径,那么就会创建一个命名空间包。
命名空间包的创建会立即发生,而且不会推迟到一个子层级的导入发生之时。新的命名空间包有一个_path_属性,该属性被设置为在上述步骤3中扫描并记录的目录路径字符串的可迭代对象,但是没有_file_属性。
path_属性在随后更深的访问过程中用于搜索所有包组件。命名空间包的_path_中每个被记录的项目,都会在进一步嵌套的项目被请求时进行搜索,这很像一个常规包的单独路径。
从另一方面看,命名空间包的_path_属性对于更低层次组件的关系,和sys.path对于顶层最左侧的包导入路径的关系是一样的。命名空间包成为了访问更低层次项目的“父路径”,这一访问也使用了上面介绍的四个步骤。
最终的结果是一个命名空间包是一种对多个目录的虚拟拼接,这些目录可以位于多个sys.path项目中。然而一旦一个命名空间包被创建,它和一个常规包之间并没有功能上的区别,它能够支持我们所学过的常规包的一切功能,包括包相对导入语法。
3. python的源程序以什么为扩展名
.py,希望能帮到你
4. python 获取文件后缀名
程序代码如下所示:
importos
dict={}
ford,fd,flinos.walk(r"F:\"):
forfinfl:
sufix=os.path.splitext(f)[1][1:]
ifdict.has_key(sufix):
dict[sufix]+=1
else:
dict[sufix]=1
foritemindict.items():
print"%s:%s"%item
第二行:创建一个字典用来保存文件后缀名及个数;
第三行:循环的目的主要就是os.path.splitext()分离后缀名和文件名;
最后打印输出。
5. 有哪位大神指导下,Python中文件、模块与包三者之间有什么区别呀麻烦解释的详细点哈,谢谢啦。。。。
在python里虽然有这三个概念,不过实际上三者基本是同义词。真的没有大区别
你建立一个目录,在里面放一个__init__.py,那个你就可以import 这个目录,在__init__.py里可以将各个模块略略组织一个,其实放在一个空文件也一样能用。
文件当然也可以直接import, 模块通常就是一个文件。
所以从这个角度看,python的包管理是透明的。很简单。它就是顺序搜索路径。然后找到相应的目录或者是文件。如果名子一致就_import_函数加载它。挺简单。
不过在编程的时候,这三个概念就差别大了。 这是个概念上的区别。
模块是模块化编程的要求。 一个模块一般可以包括多个文件。也可以一个文件。通常是一个。
而包是一个可以完整测试的,独立发布的模块组合。通常发布在python指定的目录里。
当你多个项目使用同一组模块时,可以将模块封装成包,发布到公共目录里。这就是包的意义。
结构化编程,面向对象编程,程序设计模块化(编程规范)这些都是编程的方法。工程方法。在python里也适用这些方面,仅此而亦。
6. python中包的理解与运用
6.4. 包
包通常是使用用“圆点模块名”的结构化模块命名空间。例如,名为 A.B 的模块表示了名为 A 的包中名为 B 的子模块。正如同用模块来保存不同的模块架构可以避免全局变量之间的相互冲突,使用圆点模块名保存像 NumPy 或 Python Imaging Library 之类的不同类库架构可以避免模块之间的命名冲突。
假设你现在想要设计一个模块集(一个“包”)来统一处理声音文件和声音数据。存在几种不同的声音格式(通常由它们的扩展名来标识,例如:.wav, .aiff,.au ),于是,为了在不同类型的文件格式之间转换,你需要维护一个不断增长的包集合。可能你还想要对声音数据做很多不同的操作(例如混音,添加回声,应用平衡 功能,创建一个人造效果),所以你要加入一个无限流模块来执行这些操作。你的包可能会是这个样子(通过分级的文件体系来进行分组)
当导入这个包时,Python 通过 sys.path 搜索路径查找包含这个包的子目录。
为了让 Python 将目录当作内容包,目录中必须包含 __init__.py 文件。这是为了避免一个含有烂俗名字的目录无意中隐藏了稍后在模块搜索路径中出现的有效模块,比如 string。最简单的情况下,只需要一个空的 __init__.py 文件即可。当然它也可以执行包的初始化代码,或者定义稍后介绍的 __all__ 变量。
用户可以每次只导入包里的特定模块,例如:
import sound.effects.echo
这样就导入了 sound.effects.echo 子模块。它必需通过完整的名称来引用:
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
导入包时有一个可以选择的方式:
from sound.effects import echo
这样就加载了 echo 子模块,并且使得它在没有包前缀的情况下也可以使用,所以它可以如下方式调用:
echo.echofilter(input, output, delay=0.7, atten=4)
还有另一种变体用于直接导入函数或变量:
from sound.effects.echo import echofilter
这样就又一次加载了 echo 子模块,但这样就可以直接调用它的 echofilter() 函数:
echofilter(input, output, delay=0.7, atten=4)
需要注意的是使用 from package import item 方式导入包时,这个子项(item)既可以是包中的一个子模块(或一个子包),也可以是包中定义的其它命名,像函数、类或变量。import 语句首先核对是否包中有这个子项,如果没有,它假定这是一个模块,并尝试加载它。如果没有找到它,会引发一个 ImportError 异常。
7. python 中的包、模块、类具体、方法名。package,,,,,
说模块太遥远了。
来个简单的。
新建一个python文件func.py
内容如下
def myprint(x):
print x
再新建一个python文件1.py
内容如下:
import func
func.myprint("ok")
1.py这个文件 import 了func这个文件,然后通过func.myprint调用了func中的函数
8. python脚本文件的扩展名是什么
python程序的扩展名有.py、.pyc、.pyo和.pyd。.py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言写的python库。
9. python程序文件扩展名是
.py
.py文件是python的脚本文件,Python在执行时,会将.py文件中的源代码编译成Python的byte code,再由Python Virtual Machine来执行这些编译好的byte code。
10. python包在哪个文件夹下
python包默认安装在Libsite-packages路径下。
下面我们就来看一下查看python包安装路径的方法:
1、打印输出该包的__file__属性来查看
2、导入包后直接使用print(包名)语句输出包的路径
更多Python知识请关注Python自学网