Python学习day6

本文详细介绍了Python中的类拷贝(浅拷贝与深拷贝)、模块的使用(包括自定义模块、导入模块、模块好处及内置模块)、文件读写操作(包括文件模式、文件对象方法)以及目录与包的管理。重点讲解了如何通过`copy`模块实现深拷贝,模块的导入与导出,文件的读写流程,以及目录的创建、删除和切换。此外,还提及了常用内置模块如`sys`、`time`、`os`等的作用。
摘要由CSDN通过智能技术生成

一、类的浅拷贝与深拷贝

1、变量的赋值操作

只是形成两个变量,实际上还是指向同一个对象

2、浅拷贝

Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象

3、深拷贝

使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同

二、模块(Modules)【包含:函数,类,语句】

1、函数与模块的关系:一个模块中可以包含N多个函数

2、在Python中一个扩展名为.py的文件就是一个模块

3、使用模块的好处:

方便其它程序和脚本的导入并使用

避免函数名和变量名冲突

提高代码的可维护性

提高代码的可重用性

4、自定义模块

a、创建模块:新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同

b、导入模块:

import 模块名称 [as 别名]

from 模块名称 import 函数/变量/类

5、以主程序形式运行

在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__

if __name__ = '__main__' :

                pass

def add(a,b):
    return a+b

if __name__ == '__main__':
    print(add(10,20))  #只在该模块中才会执行运算,当在其它模块调用该模块中的函数时不会执行运算该式

6、Python中的包

包时一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下

(1)作用:代码规范,避免模块名称冲突

(2)包与目录的区别

包含__init__.py文件的目录称为包

目录里通常不包含__init__.py文件

(3)包的导入

import 包名.模块名

给模块命别名:import pageage1.module_A as ma  #ma是pageage1.module_A这个模块的别名

                                 print(ma.a)

import pageage1
import calc
#使用import方式进行导入时,只能跟包名或模块名

from pageage1 import module_A
from pageage1.module_A import a
#使用from...import可以导入包,模块,函数,变量

7、Python中常用的内置模块

模块名描述
sys与Python解释器及其环境操作相关的标准库
time提供与时间相关的各种函数的标准库
os提供了访问操作系统服务功能的标准库
calendar提供与日期相关的各种函数的标准库
urllib用于读取来自网上(服务器)的数据标准库
json用于使用JSON序列化和反序列化对象
re用于在字符串中执行则表达式匹配和替换
math提供标准算术运算函数的标准库
decimal用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算
logging提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能

8、第三方模块的安装

pip install 模块名

9、第三方模块的使用

import 模块名

三、编码格式

1、常见的字符编码格式(默认为UTF-8

Python的解释器使用的是Unicode(内存)

.py文件在磁盘上使用UTF-8存储(外存)

2、文件的读写原理

(1)文件的读写俗称“IO操作”

(2)文件读写流程

 

 (3)操作原理

 3、文件的读写操作

(1)内置函数open()创建文件对象

 (2)语法规则

 

file=open('a.txt','r')
print(file.readlines())
file.close()  #在读写完之后一定要关闭

4、常用的文件打开模式

(1)文件的类型

按文件中数据的组织形式,文件分为以下两大类:

文本文件:存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开

二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,举例:mp3音频文件,jpg图片.doc文档等

打开模式描述
r以只读模式打开文件,文件的指针将会放在文件的开头
w以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头
a以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾
b以二进制方式打开文件,不能单独使用,需要与其它模式一起使用,rb,或者wb
+以读写方式打开文件,不能单独使用,需要与其它模式一起使用,a+
src_file=open('logo.png', 'rb')
target_file=open('copylogo.png', 'wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()

5、文件对象的常用方法

方法名说明
read([size])从文件中读取size个字节或字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容
readline()从文本文件中读取一行内容
readlines()把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
write(str)将字符串str内容写入文件
writelines(s_list)将字符串列表s_list写入文本文件,不添加换行符
seek(offset[, whence])

把文件指针移动到新的位置,offset表示相对于whence的位置;

offset:为正往结束方向移动,为负往开始方向移动

whence:不同的值代表不同含义:

0:从文件头开始计算(默认值)

1:从当前位置开始计算

2:从文件尾开始计算

tell()返回文件指针的当前位置
flush()把缓冲区的内容写入文件,但不关闭文件
close()把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源

6、with语句(上下文管理器)

with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的

#MyContentMgr实现了特殊方法__enter__(),__exit__()称为该类对象遵守了上下文管理器协议
该类对象的实例对象,称为上下文管理器

7、目录操作

os模块是Python内置的操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样

os模块与os.path模块用于对目录或文件进行操作

8、os模块操作目录相关函数

函数说明
getcwd()返回当前的工作目录
listdir(path)返回指定路径下的文件和目录信息

mkdir(path[, mode])

创建目录
makedirs(path1/path2...[, mode])创建多级目录
rmdir(path)删除目录
removedirs(path1/path2...)删除多级目录
chdir(path)将path设置为当前工作目录

9、os.path模块操作目录相关函数

函数说明
abspath(path)用于获取文件或目录的绝对路径
exists(path)用于判断文件或目录是否存在,如果存在返回True,否则返回False
join(path, name)将目录与目录或者文件名拼接起来
splitext()分离文件名和扩展名
basename(path)从一个目录中提取文件名
dirname(path)从一个路径中提取文件路径,不包括文件名
isdir(path)判断是否为路径
#列出指定目录下的所有py文件
import os
path=os.getcwd()
lst_files=os.walk(path)
for dirpath, dirname, filename in lst_files:
    for dir in dirname:
        print(os.path, join(dirpath, dir))
    for file in filename:
        print(os.path, join(dirpath, file))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值