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

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

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

很简单,每个目录都放一个名为_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)

    推荐阅读
  • 盐城办理职业高中学历证明需要哪些材料?

    盐城职业高中学历证书办理条件及材料在盐城市职业学校就读的成人中专毕业生遗失毕业证书并申请办理学历证明,需提供:1、学历证明书。学历证明书实例样表咨询电话:0515-88400100

  • 杀虫剂多久毒性能散完(杀虫剂多久毒性能散完,孕妇可以进入)

    刚喷完杀虫剂就直接睡觉,这样是很有可能会引起杀虫剂中毒的,若是出现身体不适等症状建议立即去医院检查。吸入杀虫剂中毒的症状一般杀虫剂中毒症状的严重程度与吸入杀虫剂的剂量有关。轻度杀虫剂中毒,可能会出现头晕、头痛、四肢无力、恶心呕吐、腹痛腹泻等症状,这种情况建议及时脱离有杀虫剂的环境,转移至通风处。

  • 肩膀酸痛抬不起来怎么快速缓解(肩膀总酸痛僵硬)

    肩周炎又称肩关节周围炎,俗称凝肩、五十肩。高发于50岁左右的女性,多见于体力劳动者。若确诊了肩周炎,也别担心,虽然和关节有关,但它其实是一种自愈性疾病。我们先来了解一下肩周炎的病程,才能更好地完成“自愈”。所以,肩周炎患者改善病情,需要“动起来”。冲击波治疗是目前较新的一种治疗方式,效果好,并且副作用小、并发症少,是许多疼痛科医生治疗肩周炎的首选治疗方式。

  • 关键时刻这神一般的反应(关键时刻这条45秒的语音)

    关键时刻这条45秒的语音“现在紫雅场村地震所有道路全部中断断水断电90%以上的房屋裂开……”9月5日下午14点06分一条长达45秒的语音消息被发到了泸定县得妥镇村镇干部微信沟通群里就是这条45秒的语音在关键时刻“立功”了!原。

  • what和how如何表达长什么样(smalltalktalk)

    smalltalktalk(〜 ̄△ ̄)〜每天晚上一篇英语知识普及英语罐头本文是我的第145篇英语知识文章作为中国情人节的七夕如约而至,全国情侣们又开始他们的花式虐狗各种甜言蜜语,花式表白然而,甜言蜜语应该翻译成“sweetta。

  • 考驾驶证理论有几科(汽车都用方向盘和踏板操控)

    比如对于车辆盲区没有概念,不懂如何控制转弯半径的轨迹差,不会反向倒车同时在脑海中模拟大空间标准的车身姿态变化,结果则出现了很多交通事故。因为客运车辆更需要风险控制,车上的九个人也许就是九个家庭,如果出现问题则背后可能会有几十上百人都会受到影响。

  • 形容女子气质清雅诗句有哪些(形容女子气质清雅诗句有哪些成语)

    ——唐·王建《寄蜀中薛涛校书》2、扫眉才子女相如,旧掌芸香四库书。韵中生韵,香外生香。--唐寅《和沈石田落花诗之一》10、绝代有佳人,幽居在空谷。--何思澄《南苑逢美人》14、北方有佳人,绝世而独立。--曹植《洛神赋》26、翩若惊鸿,婉若游龙。--曹植《洛神赋》27、若把西湖比西子,浓妆淡抹总相宜。--李白《经乱离后天恩流夜郎忆旧游书怀赠江夏韦太守良宰》30、闲静似娇花照水,行动如弱柳扶风。

  • 雷锋城里人人学雷锋(雷锋城里人人学雷锋)

    雷锋二字,早已成为人们心目中热心公益、乐于助人、扶贫济困、见义勇为、善待他人、奉献社会的代名词。团队负责人李雅光介绍,目前小小志愿讲解员团队共讲解2480场,接待观众数十万人。服役期间,他表现积极上进,多次出色完成了上级交代的工作任务,数次荣立了二等功和三等功,光荣成为了班长并且加入了中国共产党。而在抚顺市雷锋纪念馆,全国各地赶来参观的游客络绎不绝。经过奋力抢救,水泥没有受到任何损失。

  • 稻穗的意思(稻穗怎么解释)

    我们一起去了解并探讨一下这个问题吧!稻穗的意思稻穗,其实就是大米的源泉,为水稻成熟后的种子,相当于植物的果实,也就是我们今天吃的米饭。

  • 李玟会唱歌不(你作为一个香港人)

    张智霖《等》是好听的。李健《城市足印》优美,动听,只是没港味。且李健的声线是非常适合演唱这类抒情歌的。李克勤《飞花》多年来,克勤没出过错,也没进步过。杨千嬅《如何掉眼泪》很稳定,很真挚,很体现千嬅式唱腔的一个作品。刘惜君《挑战》本人认为全场最上头,没有之一。李玟《跳舞街》无法认同的演绎。有很多优秀的作品没有被选上,有很多具代表性的香港歌手也没有邀请来。