肥宅钓鱼网
当前位置: 首页 钓鱼百科

python入门100个实例(Python入门经典实例三)

时间:2023-06-19 作者: 小编 阅读量: 3 栏目名: 钓鱼百科

很简单,每个目录都放一个名为_init_.py的文件.该文件内容可以为空.这个层次结构如下所示:parent--__init_.py--child--__init_.py--a.py--b.py那么Python如何找到我们定义的module?

10 类和继承

class Base:

def __init__(self):

self.data = []

def add(self, x):

self.data.append(x)

def addtwice(self, x):

self.add(x)

self.add(x)

# Child extends Base

class Child(Base):

def plus(self,a,b):

return a b

oChild =Child()

oChild.add("str1")

print (oChild.data)

print (oChild.plus(2,3))

'''

知识点:

* self:类似Java的this参数

'''

11 包机制

每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:

# a.py

def add_func(a,b):

return a b

# b.py

from a import add_func

# Also can be : import a

print ("Import add_func from module a")

print ("Result of 1 plus 2 is: ")

print (add_func(1,2))

# If using "import a" , then here should be "a.add_func"

module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:

parent

--__init_.py

--child

-- __init_.py

--a.py

--b.py

那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:

import sys

print(sys.path)

通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:

import sys

import os

sys.path.append(os.getcwd() '\\parent\\child')

print(sys.path)

from a import add_func

print (sys.path)

print ("Import add_func from module a")

print ("Result of 1 plus 2 is: ")

print (add_func(1,2)

"'知识点:

· 如何定义模块和包

· 如何将模块路径添加到系统路径,以便python找到它们

· 如何得到当前路径

'''

12 内建帮助手册

对比C,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.

· dir函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲dir. 在idle里,试试 dir(list)

· help函数: 详细的类/对象介绍. 在idle里, 试试 help(list)

1 遍历文件夹和文件

import os

import os.path

# os,os.path里包含大多数文件访问的函数,所以要先引入它们.

# 请按照你的实际情况修改这个路径

rootdir = " d:/download "

for parent, dirnames, filenames in os.walk(rootdir):

# case 1:

for dirname in dirnames:

print ( " parent is: "parent)

print ( " dirname is: "dirname)

# case 2

for filename in filenames:

print ( " parent is: "parent)

print ( " filename with full path : "os.path.join(parent, filename))


''' 知识点:

* os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.

* case1 演示了如何遍历所有目录.

* case2 演示了如何遍历所有文件.

* os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java".

'''

2 分割路径和文件名

import os.path

# 常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.

# 根据你机器的实际情况修改下面参数.

spath = " D:/download/repository.7z "

# case 1:

p,f = os.path.split(spath);

print ( " dir is: "p)

print ( " file is: "f)

# case 2:

drv,left = os.path.splitdrive(spath);

print ( " driver is: "drv)

print ( " left is: "left)

# case 3:

f,ext = os.path.splitext(spath);

print ( " f is: "f)

print ( " ext is: "ext)

'''

知识点: 这三个函数都返回二元组.

* case1 分隔目录和文件名

* case2 分隔盘符和文件名

* case3 分隔文件和扩展名

'''

总结:5个函数

· os.walk(spath)

· os.path.split(spath)

· os.path.splitdrive(spath)

· os.path.splitext(spath)

· os.path.join(path1,path2)

3 复制文件

import shutil

import os

import os.path

src = " d:\\download\\test\\myfile1.txt "

dst = " d:\\download\\test\\myfile2.txt "

dst2 = " d:/download/test/测试文件夹.txt "

dir1 = os.path.dirname(src)

print ( " dir1 %s " % dir1)

if (os.path.exists(src) == False):

os.makedirs(dir1)

f1 = open(src, " w " )

f1.write( " line a\n " )

f1.write( " line b\n " )

f1.close()

shutil.copyfile(src, dst)

shutil.copyfile(src, dst2)

f2 = open(dst, " r " )

for line in f2:

print (line)

f2.close()

# 测试复制文件夹树

try :

srcDir = " d:/download/test "

dstDir = " d:/download/test2 "

# 如果dstDir已经存在,那么shutil.copytree方法会报错!

# 这也意味着你不能直接用d:作为目标路径.

shutil.copytree(srcDir, dstDir)

except Exception as err:

print (err)

'''

知识点:

* shutil.copyfile:如何复制文件

* os.path.exists:如何判断文件夹是否存在

* shutil.copytree:如何复制目录树

'''

总结:4个函数

· os.path.dirname(path)

· os.path.exists(path)

· shutil.copyfile(src, dst)

· shutil.copytree(srcDir, dstDir)

    推荐阅读
  • baby带着小海绵首秀(小海绵在旁猛扯妈妈头发)

    而黄晓明在微博发文给妻子庆祝生日,用行动击破婚变传言。小海绵出生于2017年1月17日,黄晓明和baby前不久才给他办了3岁的生日会,这对久未被拍到同框的夫妇因为儿子的生日终于“合体”。以往,黄晓明和baby经常在空余时间带小海绵出外玩,一家三口十分温馨。去年,baby到韩国出席电影节,活动结束后连夜乘机回上海,一脸倦容的baby对前来接机的粉丝表示自己急着回家是为了送小海绵上学。

  • 计算机的分类(计算机分为几大类)

    计算机的分类计算机可分为模拟计算机和数字计算机两大类。数字计算机的主要特点是:参与运算的数值用断续的数字量表示,其运算过程按数字位进行计算,数字计算机由于具有逻辑判断等功能,是以近似人类大脑的思维方式进行工作,所以又被称为“电脑”。数字计算机按用途又可分为专用计算机和通用计算机。

  • 异性友情短句(异性友情短句推荐)

    异性友情短句遇见你们,是我最美丽的意外。真挚的友谊,不会因时间的阻隔而冲淡。昔日的承诺,也不会因漫长的岁月而改变。人生贵在相知,相知在急难;患难识朋友,谊长情永在。彼此紧紧的连在一起,彼此深深的仰望。友谊是最圣洁的灵物,她既会在同性中生根发芽,也会在异性中开花结果。感激生命中有你们的陪伴,有些东西并不是越浓越好要恰到好处。深深的话我们浅浅地说,长长的路我们慢慢地走。

  • 人工挖孔桩施工流程(人工挖孔桩施工工艺及检测与质量保证措施)

    本文简述了人工挖孔桩施工工艺及检测与质量保证措施。主筋间距允许偏差±10mm;箍筋或螺旋筋螺距允许偏差±20mm;钢筋笼直径允许偏差±10mm;钢筋笼长度允许偏差±50mm。

  • 15秒记一个单词,第1127个,scientific

    15秒记一个单词,第1127个,scientificscientific/saɪən'tɪfɪk/adj.科学(上)的;关于科学的:击收听音频跟读↓↓↓↓↓↓↓↓↓例句/词组:ascientificdiscovery科学发现英语解释:involving。

  • 舒蕾大紫瓶怎么没了(不再是记忆中的大红瓶)

    5月12日,舒蕾在深圳召开发布会,展现品牌重塑后的新形象:新任品牌大使姚晨和6个全新产品系列,主打“自然滋养”,以首创的“滋润指数”细分产品功能。所有新系列将在6月15日上市,产品容量为400ml,建议零售价34.9元。2014年,进行品牌升级后的舒蕾推出了精油滋养系列产品,这一系列在2015年成为舒蕾销售的主力军。今年舒蕾将借通过6大新品系列继续深耕滋养市场,预计能继续为品牌和终端带来销售新增长极。

  • 女生矜持和拒绝的区别是什么(怎么看女生是矜持还是拒绝)

    因此判断一个女生喜欢不喜欢你,其实表现还是很明显的。也有人不知道女生的拒绝可能是真的拒绝,误以为是女生矜持,不好意思接受自己,一再的去打扰女生。

  • solidworks莫比乌斯环设计(SolidWorks绘制莫比乌斯环)

    SolidWorks绘制莫比乌斯环3d莫比乌斯环模型:使用SolidWorks2018绘制;点击文章末尾的了解更多,观看视频讲解过程绘制过程:1、在右视基准面上绘制草图中心矩形:边长15x60;中心点与原点重合;2、在前视基准面上绘制。

  • 女人老得快要多吃什么(老得慢的女人多半爱吃7种食物)

    西兰花中富含维生素a,这种物质可以促进机体免疫物质的生成,常吃西兰花可以起到润肠通便的效果。

  • 微信朋友圈怎么点赞(微信朋友圈点赞的方法)

    下面希望有你要的答案,我们一起来看看吧!微信朋友圈怎么点赞从手机桌面,打开微信。进入微信页面,在工具栏点击。两点边上就会出现栏,点击。点赞后,就会在这个朋友圈动态说说下方,出现你的微信昵称和爱心,同时好友那就可以看到你的点赞,这就是微信朋友圈点赞的方法。