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

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)

    推荐阅读
  • 发动机积碳有什么危害 积碳对发动机有何影响

    发动机积碳有什么危害如果发动机内有积碳,会导致发动机爆震、烧油、进气不足,影响发动机动力性、燃油经济性,甚至损坏发动机。如果你的汽车发动机容易积碳,建议定期清理积碳。发动机容易积碳的部位是进气管、气门、节气门和燃烧室。它具有吸油的特性,会使未完全燃烧的汽油变成积碳,一层一层的堆积会越来越厚,造成恶性循环。那么最好每2万公里使用一次这种方法,这样可以更有效的清除积碳。

  • 产后出汗怎么补充(产后新妈爱出汗)

    而人体是有保护机制的哦,这些血液中的水分、电解质等就会通过汗液、尿液等消除,从而导致产后会出现大量的出汗、排尿的情况。一般在产后1-2周左右就会逐渐好转,是身体器官组织进行复原的一个表现。另外,传统坐月子的一些坏习惯也会导致产后排汗多。出汗多的时候,建议用干软的毛巾随时擦干身上的汗水,以免着凉,也防止细菌滋生。新手妈妈们注意,产后出汗不需要大补特补,但要注意个人卫生、注意防止出汗着凉即可。

  • illustrator描边教程(详解Illustrator符号工具组中符号着色器的使用方法)

    illustrator描边教程今天的AI基础教程,我们继续来讲解Illustrator“符号”工具组的相关内容。接下来,选中需要修改的符号实例,在“颜色”面板中选择需要着上的颜色。然后,选择“符号着色器”工具,在需要重新着色的符号上单击即可。需要说明的是,如果符号本身是黑色的,那么,不管你想让它重新着什么颜色,都不会有变化,依然是黑色。以上我们详细介绍了Illustrator“符号”工具组中“符号着色器”工具的使用方法,相信看完你一定有所收获。

  • tp-link无线路由器如何设置wifi(TP-LINK路由器WIFI无线网怎么设置)

    tp-link无线路由器如何设置wifiTP-LINK路由器WIFI无线网设置方法依次点击“无线设置”、“基本设置”将出现如步骤2所示界面。给你的无线网加个安全不容易被破解的密码。选择“WPA-PSK/WPA2-PSK”,此种加密方式是目前最不容易被破解的加密方式。在“PSK密码”处输入您自己定义的密码。密码尽量复杂,防止被破解蹭网。如路由器提示重新启动,请根据提示重新启动您的路由器。后续教程将介绍一些深层应用,敬请关注。

  • 中集集团简介前景(国际化与多元化并举)

    集装箱业务不可否认,集装箱业务是跟全球的集运市场相关性非常大。道路运输车辆业务第二部分要介绍的是中集集团的道路运输车辆业务,这也是个全球业务。另外,中集集团也在谋求车辆业务的独立上市,已经做了相关的公告。目前申报的文件已经上报到了中国证监会,后续会根据市场的情况,来推进上市项目的进程。能源、化工及食品装备业务中集的能源、化工及食品装备业务可进一步划分为能源装备、化工装备及液态食品装备。

  • 古代皇帝一般几天上朝(古代皇帝真的是辰时上朝吗)

    子时又称为午夜,指的是现在的23点,也就是半夜11点,到第二天凌晨1点这两个小时,之后再按每两个小时一时辰递推,分别为丑时、寅时、卯时、辰时、巳时、午时、未时、申时、酉时、戌时、亥时。辰时是指的早上7点至9点这个时间段,通过字义也能看出,辰,晨也,一日之计在于晨。由于康熙、雍正以及乾隆都属于较为励精图治的皇帝,因此为了更及时处理政事,这三位皇帝都是日日上朝的。

  • 狗狗饲养小技巧你知道多少(狗狗在什么时候配种最合适)

    而且狗家长们需要知道家里狗狗的年龄增长两岁,狗狗配种的时间就需要提前一天。在发现母狗的阴道分泌物是红色的时候,后来又逐渐的变成为稻草黄色。那么在出现狗狗出现稻草黄色之后的二至三天就是狗狗最佳的配种时期了。那么这以上的两种方法一定就无效了,应该采取最后一种办法才能确定。这个时候的狗家长们可以使用公犬去试情,这样来判断还有保证最佳配种期。

  • 怎么鉴定兔子吃多了(如何鉴定兔子吃多了)

    以下内容希望对你有帮助!而平时饲养兔子也不要喂食单一的食物,否则肠胃很容易出问题。兔子是一种没有饱腹感的动物,一般情况下,主人喂多少它都会吃多少。而如果要鉴定兔子有没有吃多,只能看兔子有没有出现腹泻的情况,如果兔子出现腹泻的情况,那么就说明兔子吃多了。特别是兔食,只吃兔食的兔子普遍情况都会比较胖,这是因为兔食里面含有的营养成分太高导致的,并且兔子长期吃一种食物,一旦再换别的食物肠胃就会出现问题。

  • 蜂蜜喝多了有什么坏处(多喝蜂蜜的危害)

    蜂蜜喝多了有什么坏处上火:蜂蜜水用开水冲泡,不仅会破坏营养成分,还会上火,特别是在夏季,蜂蜜水喝多了就容易上火。所以蜂蜜水喝多了会对牙齿造成损伤,可能会引起龋齿。

  • 自动挡科目二考试左倒车入库讲解(自动挡科目二少考两项)

    钱江晚报·小时新闻记者杨一凡“现在自动挡科目二少考了两项,对考生来说是个好事。”这4项分别为倒车入库、侧方停车、曲线行驶、直角转弯。6月1日以后申请预约考试的,将减少待考时间。小时新闻记者看到,考场外停车场停放着满满的教练车,不停有考学员赶来,准备参加科目二的考试。她们的教练说,其实少考这两项影响不太大,从他带的学员的情况来看,“倒车入库最难,很容易有人挂”。