文件的基本操作 1.打开文件 2.读写文件 读:将文件内容写入内存 写:将内存的数据写入文件中 3.关闭文件
在python操作文件通常使用4个函数(方法) 1.open 打开文件,返回文件操作的对象 2.read 读文件,将文件内容写入内存 3.write 写文件 4.close 关闭文件
文件的打开方式只要有两种
第一种,使用open直接打开
#路径有绝对路径和相对路径
f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
#对于文件操作来说,默认模式只是一个r,只读!!!
file_text = f.read()
第二种,使用语法糖,with关键字
#文件的打开方式 with语法糖,不用手动 close
with open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8') as f1:
print(f1.read())
对文件进行操作:
- r:只读操作(默认模式)
- w:只写操作,如果文件存在,首先会清空源件的数据,文件指针放在文件头.如果文件不存在,则创建一个新文件
- a:追加操作,文件指针放在文件的末尾
- r+:以读写的方式打开文件,文件指针放在文件的头部。如果文件不存在,会抛出异常。
- w+:以读写的方式打开文件,文件指针放在文件开头,如果文件存在,首先会清空源件的数据。
- rb:以二进制(字节)的格式打开一个文件,文件指针放在文件的头部。如果文件不存在,会抛出异常。
- wb:以二进制(字节)的格式写入一个文件,文件指针放在文件开头,如果文件存在,首先会清空源件的
- a+:以读写的方式打开文件
文件指针--光标,标记了从那个位置开始读取数据
# f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8',"w")
# f = open("C:/Users/dj-yz/Desktop/text.txt","a",encoding='utf-8')
# #文件指针--光标,标记了从那个位置开始读取数据
# #第一次打开文件时,通常文件指针会指向文件的开始位置
# f.write("未婚")
# f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
# file_text = f.read()
# file_text2 = f.read()
# #光标移动到数据的末尾,再次读取内容为空
# print(file_text2)
r+对文件进行读写操作
f = open("C:/Users/dj-yz/Desktop/text.txt","r+",encoding='utf-8')
file_text = f.read()
file_text
w+读的时候会清空文件中的数据,a+则不会
f = open("C:/Users/dj-yz/Desktop/text.txt","w+",encoding='utf-8')
file_text = f.read()
print(file_text)
f.close
读取一行,设置光标位置,指定读取字符的数量
#读取一行
f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
#设置光标位置
f.seek(2)
# 指定读取字符的数量
f.read(6)
f2 = f.readline()
print(f2)
f.close
# 读取所有行
f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
f2 = f.readlines()
print(f2)
对文件进行复制操作
f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
f2 = open("C:/Users/dj-yz/Desktop/text_copy.txt","w",encoding='utf-8')
content = f.read()
f2.write(content)
f.close()
f2.close()
如果文件比较大,可以使用循环,一行一行写入
f = open("C:/Users/dj-yz/Desktop/text.txt",encoding='utf-8')
f2 = open("C:/Users/dj-yz/Desktop/text_copy.txt","w",encoding='utf-8')
while True:
content = f.readline()
if not content:
break
f2.write(content)
f.close()
f2.close()
文本和字节的转换
#文本和字节的转换
str = "hello"
#encode - 将字符串进行编码生成对应的字节
s1 = str.encode('utf-8')
#decode - 解码:将字节转为字符串
s2 =s1.decode("gbk")
print(s2)