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

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)

    推荐阅读
  • 瑞虎8豪华版分期购车费用明细(幸福有礼武汉瑞虎8购车优惠10.44)

    瑞虎8豪华版分期购车费用明细?观望很久的瑞虎8终于降价了,武汉顺祥晓晖店04月23日-04月23日,店铺活动购车直降10.44%,真是迫不及待的想要到店一睹瑞虎8的风采啊,下面我们就来聊聊关于瑞虎8豪华版分期购车费用明细?接下来我们就一起去了解一下吧!

  • 部分网游实名认证(网游新规施行五个月)

    据这家公司的上市发售资料显示,“香肠派对”18岁以下玩家的比例较高。记者进一步发现,疫情期间在多个投诉平台上,上诉提及的香肠派对手游有多个投诉,均是未成年人使用父母手机进行数千乃至上万元的大额充值,家长进行投诉要求退款。去年11月开始施行的《关于防止未成年人沉迷网络游戏的通知》对用户实名制、未成年人充值额度,游戏时间均做了详细具体要求。

  • 运动后马上洗澡好吗(运动后马上洗澡好吗 运动后多久可以洗澡)

    运动后人的身体尚未恢复到正常状态,毛孔完全处于开放状态,马上洗澡容易引起身体不适,不管洗冷水澡还是热水澡都是对身体有危害的。剧烈运动后过40分钟洗澡剧烈运动后,毛孔处于张开状态,身体大量排汗,立刻洗澡会使毛孔受到刺激,立即收缩,有毒物质无法排出体外,对皮肤不好,所以应该过30到40分钟最好。

  • 丰田rav4是插电混动吗(丰田RAV4插电混动版可实现75km续航)

    近日,我们从相关渠道获取了一份丰田RAV4PHEV(插混版)的动力详细配置信息。此外,新车未来将由一汽丰田进行国产,随后2021年发布。此外,新车可使用230V/32A电源进行充电,可在2.5小时内完成。前包围上的黑色塑料护板同样设计为梯形,与中网形成呼应。两侧雾灯区域做成凸显运动感的内凹式样。外后视镜的摆放位置由现款的前车窗前端降低至门板,以减小A柱的盲区面积。

  • 游戏id男生干净(男生干净的游戏id二字)

    游戏id男生干净?以下内容大家不妨参考一二希望能帮到您!游戏id男生干净空間龏伽契时骷狼迢启风廾昃往暗枭荼卜榣山查书栽了颜赌迷于捨盅莽然废尘败境沉淀凉薄千城酒归越界情渡圈心薄幸宿觞孤心情殇逐光迷失禺客謿光季傅京稚冲阵去球刺瘾蚩訧浮邑

  • 泉州面线糊的做法和配方(泉州面线糊的具体做法)

    泉州面线糊的做法和配方虾糠,猪骨汤,熟鱼肉,精盐,味精,淀粉,胡椒粉、芫荽、白酒。将虾糠包扎于纱布中放入1000克清水锅中,用中火煮半小时,捞起虾糠后,汤汁过滤待用。将精制面线稍捻碎放入沸汤锅中,加入精盐、味精调准味。淀粉调水徐徐舀入锅中,并不停推勺至面线浮起,锅中汤汁成糊状即可。用餐前可根据各人的口味,加入卤大肠、小肠以及各种熟食品和油条,食用面线糊时撒上胡椒粉、芹菜末、白酒以及卤汁,味道更美。

  • 白菜上有黑点还能吃吗(白菜上有黑点还可以吃吗)

    以下内容大家不妨参考一二希望能帮到您!白菜上有黑点还能吃吗绿叶子上出现较多的黑店可以用水洗掉,这种是小虫子造成的,洗掉就行没危害。铝业和白帮都有很多小黑点而且洗不掉,这是白菜病,目前还没发现这对人体有危害。黑点出现的较大甚至是黑斑,这种是存放不当霉变,不能吃。有黑斑并且边缘失去水分,已经腐败,不能食用。

  • 诗中的柳宗元(唐代诗人名作品鉴)

    柳宗元与韩愈并称为“韩柳”,与刘禹锡并称“刘柳”,与王维、孟浩然、韦应物并称“王孟韦柳”。柳宗元一生留诗文作品达600余篇,其文的成就大于诗。赏析这是一首押仄韵的五言绝句,是柳宗元的代表作之一。大约作于他谪居永州期间。这首七古与柳宗元的另一首五绝《江雪》,都是描写渔翁的。晨诣超师院读禅经汲井漱寒齿,清心拂尘服。溪居久为簪组束,幸此南夷谪。

  • 赏析夏云英的立秋(赏析夏云英的立秋)

    赏析夏云英的立秋《立秋》【明】夏云英秋风吹雨过南楼,一夜新凉是立秋宝鸭香消沉火​冷,侍儿闲自理空侯译文秋风夹杂着秋雨,吹过了南楼立秋这一夜,的确比以往更凉快一些鸭形状香炉里的沉香已消散火星已消灭侍女们闲暇时间自顾自弹。

  • 信访条例有不予受理告知书吗(这些信访上访行为可能构成犯罪)

    2017年10月20日巴东县公安局以涉嫌敲诈勒索罪,将长期缠访的犯罪嫌疑人黄某某刑事拘留,最后判处有期徒刑四年六个月。在其信访事项终结的情况下非法上访,因扰乱公共秩序和冒用他人居民身份证,被巴东县公安局依法裁定治安拘留12日。向某某严重扰乱了公共场所秩序,被当地警方下达训诫书对其进行了训诫。鉴于王某某主动投案,庭审中对其行为表达了悔意,市人民法院依法对其予以从轻处罚,以寻衅滋事罪判处其有期徒刑一年。