01Python基础阶段_Day07
批量修改文件名后复制文件
重点注意: 翻车点: 当以二进制模式打开文件进行文件操作时. read 函数最终读取文件内容为空时,返回的结果为 b’’ 表示是一个二进制的空字符串 在 Python2.7版本中. ‘’ == b’’ 结果为True 在 Python3.6版本中. ‘’ == b’’ 结果为False
``
import os
def muilt_file_copy(src, dst):
print(os.getcwd())
os.chdir(src)
file_list = os.listdir(src)
print(file_list)
os.mkdir(dst)
for file in file_list:
s_file = file.rpartition(".")
dst_file = dst + "/" + s_file[0] + "_bak" + s_file[1] + s_file[2]
print(dst_file)
file_r = open(file, "rb")
file_w = open(dst_file, "wb")
while True:
content = file_r.read(1024)
if content == b"":
print(f'{file} 复制成功!')
file_r.close()
file_w.close()
break
file_w.write(content)
else:
print(f"一共复制了{len(file_list)}个文件")
src = "C:/Users/LH/Desktop/v"
dst = "C:/Users/LH/Desktop/v_bak"
muilt_file_copy(src, dst)
面向对象概述
面向对象生活举例
类: 是对现实事物的属性和行为的抽象
类不能具体的表示一个真实存在的事物.
对象: 是类的一种实例表示 是真实存在的,看得见摸得到的
类与对象的关系
类(Class) 由3个部分构成
类的名称:类名
类的属性:一组数据
类的方法:允许对进行操作的方法 (行为)
类的定义格式
经典类: class 类名: 属性 行为
新式类: class 类名(object): 属性 行为
在 python3 以后,只有新式类
创建对象和使用对象的格式
对象名 = 类名(参数列表…)
对象调用方法的格式: 对象名.方法名(参数列表) 注意: 方法中参数列表中的第一个参数self,不需要手动传递,这个参数是由解释器在执行程序时,自动传递的 默认会将当前调用方法的对象引用传递进去
创建多个对象
问:如果通过同一个类,创建多次对象时,多次创建的对象是否是同一个? 答:否,创建的是多个类型相同,但地址不同的多个对象
动态绑定属性
在实例对象以后,为该对象添加一个属性
__init__方法
_init方法_
这个方法是一个魔法方法, 命名规则是前后各有两个下划线, 魔法方法是python当中,预设好的,具有特定功能的方法 一般这种方法,不需要手动调用,会自动调用执行
该方法会在创建对象的时候自动调用. 调用时,这个方法用来为对象进行初始化
str 方法和 del 方法
_str_方法(重点掌握) 格式化对象 该方法返回一个字符串值 当使用 str() 做类型转换时,会自动调用 该方法
当一个自定义类,没有实现该方法时,默认打印格式是 <模块名.类名 object at 地址> eg:<main.Cat object at 0x02176610>
name,age {name:tom, age:1}
调用该方法的场景:
1. 通过 print() 函数打印时,会自动调用该方法
2. 通过 str() 函数对自定义的对象进行类型转换时,会自动调用该方法
__del__ 方法(了解)
该方法是用来在销毁对象时,回收释放资源使用的方法
该方法也是自动调用
当在使用 del 对象时,会调用方法
``
class Hero():
def skill(self):
print("龟派气功波..")
class Person():
def eat(self, food):
print("吃", food)
def sleep(self):
print("每天都睡觉")
class Dog(object):
def bark(self):
print("旺旺")
class Person(object):
def eat(self, food):
print("一个人在吃", food)
def sleep(self, t):
print("一个人睡了", t, "个小时")
tom = Person()
print(tom)
tom.eat("米饭")
jack = Person()
jack.sleep(7)
class Person(object):
def eat(self, food):
print(self.name, "在吃", food)
tom = Person()
tom.name = "Tom"
tom.eat("海鲜")
class Cat(object):
def __init__(self, name, age):
print("init Run....", self)
self.name = name
self.age = age
def show(self):
print(self.name, self.age)
tom = Cat("Tom", 1)
print(tom.name)
print(tom.age)
jack = Cat("Jack", 2)
tom.show()
jack.show()
class Cat(object):
def __init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
def __str__(self):
s = self.name.ljust(10) + str(self.age).ljust(5) + self.height.ljust(5)
return s
tom = Cat("Tom", 1, "50cm")
print(tom)
class Cat(object):
def __del__(self):
print("del run...")
tom = Cat()
print("over")
|