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

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)

    推荐阅读
  • 清洁洗衣机哪种好用(强力去污哪家强)

    采用DDM直驱变频电机,无皮带无碳刷,运行更安静。这也是其他两款洗衣机不具备的优秀功能。总的来说,海信、海尔、TCL这三款洗衣机都表现不错,“基本功”都很扎实,能实实在在帮用户洗干净衣服。值得一提的是,TCLB100F5-DP洗衣机在这三者中算是表现最佳的,它除了拥有10KG、DDM变频电机、LED显示屏、多种洗涤程序等基本功能外,还有四重智能感知系统、银离子抑菌进水盒以及24小时预约功能等。

  • 2021杭州临安避暑胜地盘点(杭州的避暑胜地)

    约5个站,10分钟。村域内有大片的森林,植被良好,森林覆盖率在95%以上。大明山气候条件独特,在炎热的夏天,最高气温只有31℃,比山下低6-8℃,盛夏无酷暑,贯通大山巧夺天工的神秘隧洞常年气温只有17℃,是夏季避暑休闲胜地。

  • 我的世界石头怎么获得(简单教程一看就懂)

    我们首先要找到一块灰色石块区,对着灰色石块一顿撸,可以用石镐开采提升效率;,我来为大家科普一下关于我的世界石头怎么获得?以下内容希望对你有帮助!准备好一个熔炉,放置地面;点击熔炉,会出现一个界面,我们将圆石拖入输入区,底下燃料放入木炭;这样熔炉就会自动生成“石头”;返回界面,我们看得熔炉旁边就生成了石头,靠近就能拾取;

  • 卧室喷84多久能进入(卧室喷84多长时间能进入)

    卧室喷84多久能进入卧室喷84喷完以后,保持通风30-60分钟即可进人。84消毒液在半个小时就可以进行挥发,在地上如果有一定的残留,对皮肤也有一定伤害。这样的情况可以使用84消毒液消毒之后,将拖把用干净的清水进行反复擦洗,能够有效的稀释消毒液,并且达到清洁的目的,需要开窗通气30-60分钟即可。注意84消毒液在日常居室内使用,必须要加入适当比例的水进行稀释,因为84消毒液浓度很高,直接使用容易腐蚀地板或者家具。

  • 章鱼须需要煮多久(章鱼须需要煮多久熟)

    章鱼须肉质细腻,在水中比较容易被煮熟,其煮沸时间与章鱼须本身的大小有关系。在沸水当中个头较小的章鱼须30秒到1分钟左右就能煮好,个头较大的章鱼须则需要煮2分钟。

  • 色即是空抖音男主人(还记得色即是空的女主吗)

    就拿韩国的偶像权志龙入伍和退伍的时候来说吧,很多的中国女粉丝就不远万里的跑去了韩国间偶像一面。很多的韩星在中国出名是因为韩剧,曾经也是掀起了一股潮流,收获了很多大妈小姑娘们的眼泪。在他早年的作品中,有一部名叫《秘密花园》的剧十分的出名,里面的女主角河智苑是个十分漂亮的大美女。前几年的时候河智苑并没有经常出现在舞台上,而是慢慢的就淡出了娱乐圈,最近的一部作品也没有大力的宣传。

  • 常见水生植物有什么(水生植物是什么)

    常见水生植物有什么常见的水生植物有:水葱、芦竹、睡莲、菱角、芡实、美人蕉、梭鱼草、狼尾草、蒲草、水菜花、海菜花、金鱼藻、水车前、黑藻等、浮萍、紫背浮萍、凤眼蓝等植物。水生植物是出色的游泳运动员或潜水者。叶子柔软而透明,有的形成为丝状,如金鱼藻。丝状叶可以大大增加与水的接触面积,使叶子能最大限度地得到水里很少能得到的光照,吸收水里溶解得很少的二氧化碳,保证光合作用的进行。

  • 如何做qq弹弹的芋圆(新手增强自信心的QQ糖芋圆)

    用QQ糖一袋放入锅中,放水,煮熔化,加木暑淀粉搅团,再一份一份搓圆,一个一个放入锅中煮,下面我们就来说一说关于如何做qq弹弹的芋圆?我们一起去了解并探讨一下这个问题吧!欢迎在下方留言分享您对这道美食的建议。

  • 100句苏轼撩人情诗(苏轼好佳酿酣梦千古芳)

    东坡游赤壁诗人爱酒直抒臆,留下诗词千百首八十年代天津社科院的《古典诗词百科描写辞典》中,关于酒浆的诗词足有9页摘抄,高于众多同类“衣食日用”诗词。

  • 蜂王浆适合什么人群喝(蜂王浆哪些人不宜吃)

    腹泻患者不宜吃蜂王浆,蜂王浆的功能之一就是通便,此时若使用只能加剧病情。低血压和低血糖患者,道理同上,高血压患者吃蜂王浆能缓解病情,而低血压患者恰恰相反。处于孕期的女性,此时若服用蜂王浆会刺激子宫收缩,而影响胎儿的正常发育。处在第一次发育期的儿童不宜服用,如果不存在营养不良的状况,儿童自身营养供应应该是绰绰有余的,而此时服用含有少量激素的蜂王浆,有可能导致分泌失衡,影响发育。