一、编码格式介绍
1.Python的解释器使用的是Unicode(内存)。
2. “.py”文件在磁盘上使用UTF-8的存储方式。
二、文件内容的读写/读取磁盘文件中的内容
1.Python操作文件—》打开或创建文件—》读、写文件—》关闭资源
2.读文件
file = open('filename'[,'mode','encoding'])
file = open('数据结构18计算机二班平时成绩1.txt','r')
print(file.read())
file.close()#释放读文件过程中的所有资源
三、常用文件打开模式
1.文件类型
1、文本文件:存储的是普通“字符”文本,默认为Unicode字符集。
2、二进制文件:数据内容用“字节”进行存储。
2.mode(衔接读文件mode参数)
r | 只读文件、文件的指针将会放在文件的开头。 |
w | 制度模式文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件开头。 |
a | 以追加模式打开文件,文件不存在则创建,文件指针在文件开头;如果存在,从文件末尾追加内容,文件指针在原文件文件末尾。 |
b | 以二进制方式打开文件,不能单独使用,需要与其它模式一起使用,"rb"或“wb”(例如图片) |
+ | 以读写方式打开文件,不能单独使用,需要与其它模式一起使用,"a+" |
fe = open('4bcb89b2f78b17653b3f3581f59a5245.jpeg','rb')
sz = open('copy.jpeg','wb')#复制照片到copy.jpeg文件
sz.write(fe.read())
fe.close()
sz.close()
四、文件对象常用方法
read([size]) | 以文件中读size字节或字符的内容返回,若省略[size]直接读取到末尾。 |
readline() | 文件中读取一行内容。 |
readlines() | 把文件中每一行都作为独立的字符对象,并将这些对象放入到列表。 |
write(str) | 将字符串内容写入文件。 |
writelines(s_list) | 将字符串列表s_list写入文本文件,不添加换行符。 |
seek(offset[,whence]) | 把文件指针移动到新的位置,offset表示相对于whence的位置,offset:为正往结束方向移动,为负往开始方向移动,whence:不同值代表不同含义;0:文件开头计算(默认);1:从当前位置开始计算;2:从文件末尾开始计算; |
tell() | 返回文件指针当前位置(从0开始计算) |
flush() | 把缓冲区的内容写入文件,但不关闭文件。 |
close() | 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源;(关闭后再不能写入) |
file = open('a.txt','r')
print(file.read())
print(file.readline())
print(file.readlines())#3个print分别运行;
file.close()
helloPython
hello
['hello\n', 'Python']
a.txt文件
file = open('c.txt','r')
file.seek(2) #一个汉字2个字节;从第3个字节开始读
print(file.read())
print(file.tell())#返回指针当前位置;
file.close()
好中国
加油中国20 #8个汉字+一个回车
c.txt文件
五、with语句(上下文管理器)
with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的;
with open('a.txt','r') as file:
print(file.read()) #with语句不用手动关闭文件
lass MyContentMgr(object):
def __enter__(self):
print('enter方法被调用')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('exit方法被调用')
def show(self):
print('show方法被调用')
#print('show方法被调用',1/0)# 离开时自动调用__exit__方法
with MyContentMgr() as file:
file.show()
enter方法被调用
show方法被调用
exit方法被调用 #执行顺序就可以看出;
六、目录(os模块)
os模块用于对目录或文件进行操作 。
system() | 执行电脑上的小软件;calc.exe:打开计算器;notepad.exe:记事本; |
startfile() | 调用可执行文件;QQ、微信;把地址输入就可以; |
getcwd() | 返回当前工作目录; |
listdir(path) | 返回指定路径下的文件和目录信息; |
mkdir(path[mode]) | 创建目录 |
makedirs(path1/path2...[,mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2...) | 删除多级目录 |
chdir(path) | 设置path为当前目录 |
import os
#os.system('calc.exe')#打开计算器
#os.system('notepad.exe')#打开记事本
执行文件
#os.startfile('C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe')#打开微信
print(os.getcwd())#获取当前目录
print(os.listdir('../15文件'))#获取指定路劲下的文件
#os.makedirs('A/B/C')#创建多级目录
#os.removedirs('A/B/C')#删除多级目录
#os.chdir('E:\\python\\假期\\11.BUG')
print(os.getcwd())
E:\python\假期\15文件
['4bcb89b2f78b17653b3f3581f59a5245.jpeg', 'a.txt', 'c.txt', 'copy.jpeg', 'FF.py', 'new_4bcb89b2f78b17653b3f3581f59a5245.jpeg', 'nuw', 'os.path常用方法.py', 'with语句.py', '数据结构18计算机二班平时成绩1.txt', '目录(os).py', '读文件.py']
E:\python\假期\15文件
七、walk语句
path = os.getcwd()
lst_file = os.walk(path)#返回的是一个元组
for dirpath,dirname,filename in lst_file:
for dir in dirname:
print(os.path.join(dirpath,dir))
for file in filename:
print(os.path.join(dirpath, file))
print('----------------------------')
E:\python\假期\15文件\nuw
E:\python\假期\15文件\4bcb89b2f78b17653b3f3581f59a5245.jpeg
E:\python\假期\15文件\a.txt
E:\python\假期\15文件\c.txt
E:\python\假期\15文件\copy.jpeg
E:\python\假期\15文件\FF.py
E:\python\假期\15文件\new_4bcb89b2f78b17653b3f3581f59a5245.jpeg
E:\python\假期\15文件\os.path常用方法.py
E:\python\假期\15文件\with语句.py
E:\python\假期\15文件\数据结构18计算机二班平时成绩1.txt
E:\python\假期\15文件\目录(os).py
E:\python\假期\15文件\读文件.py
----------------------------
E:\python\假期\15文件\nuw\nuw2
E:\python\假期\15文件\nuw\1.py
E:\python\假期\15文件\nuw\2.py
----------------------------
E:\python\假期\15文件\nuw\nuw2\96.py
----------------------------
八、os.path常用模块于方法
abspath(path) | 用于获取文件或目录的绝对路径 |
exists(path) | 用于判断文件或目录是否存在,存在True,否则False |
join(path,name) | 将目录与目录或者文件名拼接起来 |
splitext() | 分离文件名和扩展名 |
basename(path) | 从一个目录中提取文件名 |
dirname(path) | 从一个路径中提取文件路径,不包括文件名 |
isdir(path) | 用于判断是否为路径(目录不包括文件名) |
import os.path
print(os.path.abspath('with语句.py'))
print(os.path.exists('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.join('E:\\python\假期\\15文件','读文件.py'))
print(os.path.splitext('with语句.py'))
print(os.path.basename('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.dirname('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.isdir('E:\\python\假期\\15文件\\with语句.py'))
E:\python\假期\15文件\with语句.py
True
E:\python\假期\15文件\读文件.py
('with语句', '.py')
with语句.py
E:\python\假期\15文件
False #目录不包括文件名
九、筛选当前目录下目标文件
import os
file = os.getcwd()
lst = os.listdir(file)
for filename in lst:
if filename.endswith('.py'):
print(filename)
FF.py
os.path.py
os.path常用方法.py
with语句.py
目录(os).py
读文件.py
如果博客内容有什么错误,可以私信,我们一起讨论;
^0^