内容目录
文件基础操作
# 文件就是存储在某种长期储存设备上的一段数据
# 文件操作
# 打开文件 ---> 读,写文件 --> 关闭文件
# 文件对象的方法
# open():创建一个file对象,默认是以只读模式打开
# read(n):n表示从文件中读取的数据的长度,没有传n值就默认一次性读取文件的所有内容
# write():将指定内容写入文件
# close():关闭文件
# 文件属性
# 文件名.name:返回要打开文件的文件名,可以包含文件的具体路径
# 文件名.mode:返回文件的访问模式
# 文件名.closed:检测文件是否关闭,关闭就返回True
# 1.打开文件
f = open('test.txt')
print(f.name) # 文件名
print(f.mode) # 文件访问模式
print(f.closed)
# 2.关闭文件
f.close()
print(f.closed)
test.txt
r
False
True
# 读写操作
# read(n):n表示从文件中读取的数据的长度
f = open(r'C:\Users\18977\Desktop\test.txt')
print(f)
print(f.name) # 文件的绝对路径
print(f.read())
f.close()
<_io.TextIOWrapper name='C:\\Users\\18977\\Desktop\\test.txt' mode='r' encoding='cp936'>
C:\Users\18977\Desktop\test.txt
hahaha
# readline():一次读取一行内容,方法执行完,会把文件指针移到一下行,准备再次读取
f = open('test.txt')
while True:
text = f.readline() # 读取一行内容
# 读取不到内容要退出循环
if not text:
break
print(text)
f.close()
bingbing18
susu18
ziyi18
# readlines():按照行的方式把文件内容一次性读取,返回的是一个列表,每一行的数据就是列表中的一个元素
f = open('test.txt')
text = f.readlines()
print(text) # 返回列表
print(type(text))
f.close()
['bingbing18\n', 'susu18\n', 'ziyi18']
<class 'list'>
f = open('test.txt')
text = f.readlines()
for i in text:
print(i)
f.close()
bingbing18
susu18
ziyi18
# 访问模式
# r:只读模式(默认模式),文件必须存在,不存在就会报错
# w:只写模式,文件存在就会先清空文件内容,再写入添加内容,不存在就创建文件
file = open('test01.txt','w')
file.write('...') # 重新编辑文件内容,原有内容会被覆盖
file.close()
# +:表示可以同时读写某个文件
# 使用+会影响文件的读写效率,开发过程中更多时候会以只读、只写的方式来操作文件
# r+:可读写文件,文件不存在就会报错
# w+:先写再读,文件存在就重新编辑文件,不存在就创建新文件
f = open('test.txt','w+')
f.write('susu')
print(f.read())
f.close()
# a:追加模式,不存在就创建新文件进行写入,存在则在原有内容的基础上添加新的内容
f = open('test.txt','a')
f.write('\ntest is being written')
f.close()
# 文件指针:标记从哪个位置开始读取数据
# 文件定位操作
# tell()和seek()
# tell():显示文件内当前位置,即文件指针当前位置
# seek(offset,whence):移动文件读取指针到指定位置
# offset:偏移量,表示要移动的字节数
# whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,1代表当前位置作为参考位置,2代表文件结尾作为参考位置
# seek(0,0)就会把文件指针移到文件开头
f = open('test.txt','w+')
f.write('hello python')
pos = f.tell() # 12,文件内容长度
print('当前文件指针所在的位置:',pos)
f.seek(0,0)
pos2 = f.tell()
print('移动后所在位置:',pos2)
print(f.read())
f.close()
当前文件指针所在的位置: 12
移动后所在位置: 0
hello python
# with open
# 作用:代码执行完,系统会自动调用f.close(),可以省略文件关闭步骤
with open('test.txt', 'w') as f: # f是对象名
f.write('hello world')
print(f.closed)
True
with open('test.txt',encoding='utf-8') as f: # f是对象名
print(f.read())
冰冰18岁
哈哈
# 案例:图片复制 'rb'
# 1.读取图片(图片是一个二进制文件,想要写入必须要先拿到)
# 2.写入图片
# 读取图片
with open(r'C:\Users\18977\Pictures\fengche2.jpg','rb') as file:
img = file.read()
# 将读取到的内容写入到当前文件中
with open(r'D:\华为家庭存储\我的应用\pythonproject\pytest01\图片.jpg','wb') as f:
f.write(img)
# 导入模块 import os
# 1.文件重命名 os.rename(旧名字,新名字)
import os
os.rename('图片.jpg','风车.jpg')
# 2.删除文件 os.remove()
import os
os.remove("test01.txt")
# 3.创建文件夹 os.mkdir()
os.mkdir('bingbing')
# 4.删除文件夹 os.rmdir()
os.rmdir('bingbing')
# 5.获取当前目录 os.getcwd()
print(os.getcwd())
D:\华为家庭存储\我的应用\pythonproject\pytest01
# 6.获取目录列表
print(os.listdir()) # 获取当前目录列表
print(os.listdir('../')) # 获取上一级目录的列表
留言