Python 课程学习笔记(14)编码格式/文件读写原理与操作/with语句/目录操作

本文详细介绍了Python中文件编码格式,如Unicode和UTF-8,以及文件读写的基本原理,包括打开模式如'r'、'w'、'a'和'b'等。讲解了with语句在资源管理中的作用,以及os和os.path模块在目录操作中的常见函数,如mkdir、rmdir、chdir等。此外,还讨论了文件对象的方法,如read、write、seek和close等。

第十五章 编码格式/文件读写原理与操作/with语句/目录操作

 

127. 编码格式的介绍

128. 文件读写的原理—读取磁盘文件中的内容

129. 常用的文件打开模式

130. 文件对象的常用方法

131. With语句

132. os模块的常用函数

133. os.path模块的常用方法—课堂案例


127. 编码格式的介绍

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

·.py文件在磁盘上使用UTF-8存储(外存)【python默认的存储方式】

【ASCII – ISO8859-1 – Unicode – GB2312 GBK GB19030 -UTF-8】

 

128. 文件读写的原理—读取磁盘文件中的内容

(1)文件的读写俗称“IO操作”【input / output】

(2)文件读写操作流程

(3)操作原理:

Python操作文件

 打开or 新建文件

 读(外至内)、写(内至外)文件

 关闭(操作系统)资源  

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

(5)语法规则:file = open ( filename [ , mode , encoding ] )

file=open('a.txt','r')
print(file.readlines())    #readlines() 读取结果为列表
file.close()

129. 常用的文件打开模式

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

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

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

打开模式

描述

r

只读模式打开文件,文件的指针将会放在文件的开头

w

只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头

a

追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾

b

以二进制方式打开文件,不能单独使用,需要与共它模式一起使用,rb,或者wb

+

以读写方式打开文件,不能单独使用,需要与其它模式一起使用,a+

 

print('--------------------129.常用的文件打开模式------------------')
file=open('a.txt','r')
print(file.readlines())    #readlines() 读取结果为列表
file.close()

file=open('b.txt','w')
file.write('修改内容,b的内容同步修改')
file.close()

file=open('c.txt','a')
file.write('---a---')
file.close()



src_file=open('logo.jpg','rb')
target_file=open('copylogo.jpg','wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()

130. 文件对象的常用方法

方法名

说明

 

read([size])

从文件中读取size个字节或字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容

 

file=open('a.txt','r')
print(file.read())

file=open('a.txt','r')
print(file.readline())  #读取第一行

file=open('a.txt','r')
print(file.readlines()) #每一行作为独立变量,放入列表中

file.close()

readline()

从文本文件中读取一行内容

 

readlines()

把文本文件中每行都作为独立的字符串对象,并将这些对象放入列表返回

 

write(str)

将字符串str内容写入文件

 

writelines(s_list)

将字符串列表s_list写入文本文件,不添加换行符

 

seek(offset[,whence])

把文件指针移动到新的位置,offset表示相对于whence的位置;offset:为正往结束方向移动,为负往开始方向移动;whence不同的值代表不同含义:

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

1:从当前位置开始计算

2:从文件尾开始计算

 

tell()

返回文件指针的当前位置

 

flush()

 

flush()之后可以继续些内容,close()之后不可以继续写代码

把缓冲区的内容写入文件,但不关闭文件

 

file=open('c.txt','a')
file.write('hello')
file.flush()
file.write('world')
file.close()

close()

把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源

 

 

131. With语句

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

with open('a.txt','r') as file:
    print(file.read())

132. os模块的常用函数

(1)目录操作

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

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

(2)os模块操作目录相关函数

函数

说明

getcwd()

返回当前的工作目录 (Current Work Directory)

listdir(path)

返回指定路径下的文件和目录信息

mkdir(path[,mode])

创建目录

makedirs(path1/path2…[,mode])

创建多级目录

rmdir(path)

删除目录

removedirs(path1/path2……)

删除多级目录

chdir(path)

将path设置为当前工作目录

#os模块与操作系统相关的一个模块
import os
#os.system('notepad.exe')    #打开系统的记事本,类似于 win+R-->notepad
#os.system('calc.exe')       #打开系统计算器

#直接调用可执行文件
#os.startfile('D:\\KuGou\\KGMusic\\kugou.exe')   #打开相应的应用程序--转义字符需要两个 \

print('-----')
'''os模块操作目录相关函数'''
print(os.getcwd())
print('-----')
lst=os.listdir('../chapter15')  #../退回上一级目录
print(lst)

print('-----')
#os.mkdir('newdir2')  #创建目录

print('-----')
#os.makedirs('A/B/C')   #创建多级目录

print('-----')
#os.rmdir('newdir2')
#os.removedirs('A/B/C')

print('-----')
os.chdir('E:\\Python\\B站课程\\chapter15')
print(os.getcwd())

133. os.path模块的常用方法—课堂案例

(1)os.path 模块操作目录相关函数

函数

说明

abspath(path)

用于获取文件或目录的绝对路径

exists(path)

用于判断文件或目录是否存在,如果存在返回True,否则返回False

join(path,name)

将目录与目录或者文件名拼接起来

splitext()

分离文件名和扩展名

basename(path)

从一个目录中提取文件名

dirname(path)

从一个路径中提取文件路径,不包括文件名

isdir(path)

用于判断是否为路径

walk(path)

可以遍历指定目录下的所有目录及文件

 

import os.path
print(os.path.abspath('128.py'))  #绝对路径
print(os.path.exists('131-with.py'),os.path.exists('demo18.py'))
print(os.path.join('E:\\Python','128.py'))
print(os.path.split('E:\\Python\\B站课程\\129.py'))       #拆分目录与文件
print(os.path.splitext('E:\\Python\\B站课程\\129.py'))    #拆分文件与后缀名
print(os.path.basename('E:\\Python\\B站课程\\chapter15\\129.py'))      #提取文件名
print(os.path.dirname('E:\\Python\\B站课程\\chapter15\\129.py'))       #提取目录
print(os.path.isdir('E:\\Python\\B站课程\\chapter15\\129.py'))         #判断是否为一个目录

'''列出指定目录下的所有文件'''

 

 

 

 

 

 

  1. 文件对象的常用方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值