python加载模块函数 python中模块的用法

python里怎么样实现模块按需加载

为Python添加模块加载路径的方法: 方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\") 方法二:修改环境变量 windows用户可以修改系统环境变量PYTHONPATH 方法三:增加.pth文件,推荐! 在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。 1 windows c:\python27\site-packages 2 linux(ubuntu) /usr/local/lib/python2.7/dist-packages 2 linux(redhat) /usr/lib/python2.7/site-packages

目前创新互联已为上1000家的企业提供了网站建设、域名、网站空间绵阳服务器托管、企业网站设计、来凤网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Python-os的path模块函数大全

在操作文件的时候,我们肯定是要使用到 os 模块的,但是 os 模块里面还有 path 模块,这个模块主要是用来获取文件的属性的。这篇博客来分享一下 path 模块的函数,希望对学习 Python 的小伙伴有所帮助。

返回绝对路径:

返回文件名:

返回list(多个路径)中,所有path共有的最长的路径:

返回文件路径:

路径存在则返回True,路径损坏返回False:

路径存在则返回True,路径损坏也返回True:

把path中包含的" "和" user"转换成用户目录:

根据环境变量的值替换path中包含的" {name}":

返回最近访问时间(浮点型秒数):

返回最近文件修改时间:

返回文件 path 创建时间:

返回文件大小,如果文件不存在就返回错误:

判断是否为绝对路径:

判断路径是否为文件:

判断路径是否为目录:

判断路径是否为链接:

判断路径是否为挂载点:

把目录和文件名合成一个路径:

转换path的大小写和斜杠:

规范path字符串形式:

返回path的真实路径:

从start开始计算相对路径:

判断目录或文件是否相同:

判断fp1和fp2是否指向同一文件:

判断stat tuple stat1和stat2是否指向同一个文件:

把路径分割成 dirname 和 basename,返回一个元组:

一般用在 windows 下,返回驱动器名和路径组成的元组:

分割路径中的文件名与拓展名:

把路径分割为加载点与文件:

遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数:

设置是否支持unicode路径名:

如何导入python中的模块

定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。

比如说,下面的代码输入到一个文件中,就可以看作是一个模块:

def

printme(var):

print

varif

__name__

==

'__main__':

printme(1)

假设说输入到a.py中,那么import

a就可以把这个模块导入。

然后可执行a.printme(3),屏幕即可打印出3:

a.printme(3)3

一个模块顶层定义的变量,会自动变成模块的属性。例如:

data=[1,2,3]def

printme(var):

print

varif

__name__

==

'__main__':

printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。

引入模块示例如下:(假定此时data=[1,2,3]未定义)

import

a

a.data

Traceback

(most

recent

call

last):

File

"pyshell#1",

line

1,

in

module

a.dataAttributeError:

'module'

object

has

no

attribute

'data'

reload(a)module

'a'

from

'C:/py\a.pyc'

a.data

Traceback

(most

recent

call

last):

File

"pyshell#3",

line

1,

in

module

a.dataAttributeError:

'module'

object

has

no

attribute

'data'

从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:

reload(a)module

'a'

from

'C:/py\a.py'

a.data[1,

2,

3]

这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。

上面a.data,就是访问模块中的属性。

上面的例子是导入一个文件作为一个模块。

其实python的模块导入还有更丰富的内容。

除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。

看下面例子:

在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。

那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import

aa.bb.a,就可以导入模块a了。

如何在python上加载机器学习模块

对于原始数据我们要将其一部分分为train data,一部分分为test data。train data用于训练,test data用于测试准确率。在test data上测试的结果叫做validation error。将一个算法作用于一个原始数据,我们不可能只做出随机的划分一次train和test data,然后得到一个validation error,就作为衡量这个算法好坏的标准。因为这样存在偶然性。我们必须好多次的随机的划分train data和test data,分别在其上面算出各自的validation error。这样就有一组validation error,根据这一组validation error,就可以较好的准确的衡量算法的好坏。

cross validation是在数据量有限的情况下的非常好的一个evaluate performance的方法。

而对原始数据划分出train data和test data的方法有很多种,这也就造成了cross validation的方法有很多种。

sklearn中的cross validation模块,最主要的函数是如下函数:

sklearn.cross_validation.cross_val_score。他的调用形式是scores = cross_validation.cross_val_score(clf, raw data, raw target, cv=5, score_func=None)

参数解释:

clf是不同的分类器,可以是任何的分类器。比如支持向量机分类器。clf = svm.SVC(kernel='linear', C=1)

cv参数就是代表不同的cross validation的方法了。如果cv是一个int数字的话,并且如果提供了raw target参数,那么就代表使用StratifiedKFold分类方式,如果没有提供raw target参数,那么就代表使用KFold分类方式。

cross_val_score函数的返回值就是对于每次不同的的划分raw data时,在test data上得到的分类的准确率。至于准确率的算法可以通过score_func参数指定,如果不指定的话,是用clf默认自带的准确率算法。

还有其他的一些参数不是很重要。

cross_val_score具体使用例子见下:

clf = svm.SVC(kernel='linear', C=1)

scores = cross_validation.cross_val_score(

... clf, raw data, raw target, cv=5)

...

scores

array([ 1. ..., 0.96..., 0.9 ..., 0.96..., 1. ])

除了刚刚提到的KFold以及StratifiedKFold这两种对raw data进行划分的方法之外,还有其他很多种划分方法。但是其他的划分方法调用起来和前两个稍有不同(但是都是一样的),下面以ShuffleSplit方法为例说明:

n_samples = raw_data.shape[0]

cv = cross_validation.ShuffleSplit(n_samples, n_iter=3,

... test_size=0.3, random_state=0)

cross_validation.cross_val_score(clf, raw data, raw target, cv=cv)

...

array([ 0.97..., 0.97..., 1. ])

python 怎样添加模块加载路径

这里主要介绍第二种方法:通过.ph文件进行设置,好处是可以将路径设为永久路径

在Python的安装目录下,找到 \Lib\site-packages 文件夹,在该文件夹下新建一个以.pth为后缀名的文件,编辑文件,内容为要添加的库路径。(我的文件名命名为setpath.pth)。添加路径示例:文件内容写入要引用的库路径

步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\\Python\\mulib。我这里新建的文件路径的文件夹命名为“mulib”

步骤2:保存文档时,将文件类型选为所有,文件名为 setpath.pth。文件名是什么无所谓,主要是只有当文档类型选为“所有文件”,才可以定义文件类型为.pth

步骤3:将保存好的文件放在Python的site-packages文件夹中就完成了。

python导入模块的方法有哪些

方法一

import modname

模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。

用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字。所以不能只使用 funcname,而应该使用 modname.funcname

方法二

from modname import funcname

from modname import fa, fb, fc

或者

from modname import *

与第1种方法的区别:funcname 被直接导入到本地名字空间去了,所以它可以直接使用,而不需要加上模块名的限定* 表示,该模块的所有公共对象(public objects)都被导入到 当前的名称空间,也就是任何只要不是以”_”开始的东西都会被导入。

modname没有被定义,所以modname.funcname这种方式不起作用。并且,如果funcname如果已经被定义,它会被新版本(该导入模块中的版本)所替代。如果funcname被改成指向其他对象,modname不能不会觉察到。

建议:

1)如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import

2)如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import

3)如果模块包含的属性和方法与你的某个模块同名,你必须使用import module来避免名字冲突

4)尽量少用 from module import * ,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成调试和重构都更困难。

方法三

内建函数__import__()

除了前面两种使用import关键字的方法以外,我们还可以使用内建函数 __import__() 来导入 module。两者的区别是,import 后面跟的必须是一个类型(type),而__import__() 的参数是一个字符串,这个字符串可能来自配置文件,也可能是某个表达式计算结果。例如:

mymodule = __import__ (’module_name’)

附注:

1)模块的内容都放在一个模块文件中,如 mymodule 的内容应该放在PYTHONPATH 目录下的一个mymodule.py中,C实现的除外

2)包可以将几个模块名称空间组织起来, 如A.b 就表示在包A中的一个子模块b

可以单独导入某一个子模块,如Python文档中给出的例子

import sound.effects.echo

这样必须使用全称对里面的对象进行引用,如

sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)

还可以使用下面的语句来加载echo子模块

from Sound.Effects import echo

它在没有包前缀的情况下也可以使用, 所以它可以如下方式调用:

echo.echofilter(input, output, delay=0.7, atten=4)

不主张从一个包或模块中用import * 导入所有模块,因为这样的通常会导致可读性很差。

from Package import specific_submodule的用法并没有错,实际上这还是推荐的用法,除非导入的模块需要使用其它包中的同名子模块(the importing module needs to use submodules with the same name from different packages).

综上所述,一般情况应该使用import , 但有几个例外

1)module文档告诉你要用from-import的

2)导入一个包组件。需要一个包里面的某个子模块,一般用from A.b import c比import A.b.c 更方便 且不会冒混淆的危险.


本文名称:python加载模块函数 python中模块的用法
URL地址:http://hbruida.cn/article/dosoiso.html