1.文件操作步骤
- 打开文件-open
- 读写文件
- 读--把文件的内容读到变量里-read
- 写--把变量的值写到文件内容里-write
- 关闭-close
2. 读取第一个文件内容
- 打开文件
- file=open(要打开文件的路径和文件名,"r")
- file是一个变量名,代表文件操作对象
- open的第一个参数一定要文件存在,如果文件不存在,会报错
- “r”意思是用只读方式打开文件
- 读取文件内容
- txt=file.read()
- txt是定义一个变量,代表存放读取到的文件内容
- file是上一个open返回的文件操作对象
- read是file对象的一个方法,用来读取文件内容
- 关闭文件
- file.close()
- 文件打开后,一定要记得关闭
#默认模式以读取的模式打开文件 r: 只读 是read缩写
# encoding:指定文件编码格式
file=open("../data1/1.txt","r",encoding="utf-8")
text1=file.readline() #读取一行
text2=file.readlines() #按照行进行读取
text3=file.read() #读取文件 全部读
print(text1) #读取一行
print(text2) #因为是按行进行打印,所以文件若是有换行操作,怎会打印出"/n"
print(text3) #按照文件格式进行打印
#关闭文件
file.close()
| 操作格式/函数名称 | 功能 | 参数 | 返回值 |
| read() | 读取文件中所有信息 | 无 | 文件中的所有信息 |
| read(num) | 读取文件中指定数量的字符/字节信息 | num:每次读取的数据总量 | 文件中指定数量的信息 |
| readline() | 读取文件中一行信息,以/n判定行是否读取完毕 | 无 | 文件中的一行信息 |
| readlines() | 将文件中信息以行为单位读取到列表中,以/n判定是否读取完毕 | 无 | 由文件中所有行信息组成的列表对象 |
3.写入一个文件内容
- 打开文件
- file=open("要打开的文件路径和文件名","w")
- 第二个参数w代表用写的方式打开文件
- 如果用w方法打开文件,文件名不存在,会创建一个新文件,存在的话会覆盖已有文件
- 写文件
- file.write(要写入的内容str类型)
- file.writelines(模型model类型)
- 关闭文件
- file.close()
# 文件不存在的话,写入模式会自动创建文件
# 中文会乱码,怎么解决: encoding="utf-8"
# w :覆盖写
file=open("../data1/2.txt","w",encoding="utf-8")
# 如果想换行必须有\n
# 写入多行,以列表方式写入
list1=["11啊啊啊\n","11\n","222\n"]
file.writelines(list1)
# 写入多行,以字符串方式写入
# file.write("123123\naasdad\naasdsad\n")
#关闭文件
file.close()
| 操作格式/函数名称 | 功能 | 参数 | 返回值 |
| write(str) | 将指定信息写入到文件 | str:要写入的字符串信息 | 写入的数据总量 |
| writelines(model) | 将指定信息写入到文件 | model:要写入的存储模型信息,模型中数库是字符串 | 无 |
4.追加写文件内容
- 打开文件
- file=open("文件路径和文件名","a")
- "a"当文件不存在的时候创建新文件
- 当文件存在的时候,在文件后面追加内容
- 写文件
- file.write(要写入的内容str类型)
- file.writelines(模型model类型)
- 关闭文件
- file.close()
# 文件不存在的话,写入模式会自动创建文件
# 中文会乱码,怎么解决: encoding="utf-8"
# a :追加写 不会覆盖原来的数据
file=open("../data/2.txt","a",encoding="utf-8")
file.write("123123\naasdad\naasdsad\n")
#关闭文件a
file.close()
5.总结打开文件的方式
- open函数第二个参数的意思是打开文件的方式
- r只读
- w只写
- a追加写
- rb用二进制方法打开,只读
- wb用二进制方法打开,只写
- ab用二进制方法打开,追加
6.打开文件的时候,指定字符集
-
如果文件格式是utf8的,open打开文件的时候需要指定字符集
-
file=open("文件名",“r”,encoding="utf8")
-
- 如果出现以下错误提示,基本就是由于字符集导致的错误
UnicodeDecodeError:
7.替换内容 文件名.replace(“旧”,“新”)
# 有文件a.txt
# 内容如下:
# 我爱你python, 我爱你
#
# 写代码,把a.txt内容中的python替换为world
#
# 思路,先把a.txt文件内用r方式读出来
# 用字符串的replace方法把python替换为world
# 在用w方式把替换后的内容写回到a.txt里面
file = open(r"c:\file\temp\a.txt", "r")
txt = file.read()
a = txt.replace("python", "world")
file.close() # 这一步必须关闭
file = open(r"c:\file\temp\a.txt", "w")
file.write(a)
file.close()
8.复制文件
# 把文件a.txt复制为b.txt
# 思路:把a.txt打开,读取全部内容
# 把b.txt用w方法打开,把内容写入
file = open(r"c:\file\temp\a.txt", "r")
txt = file.read()
file.close()
file = open(r"c:\file\temp\b.txt", "w")
file.write(txt)
file.close()
9.合并文件
# 有文件a.txt
# 内容如下:
#
# 我爱你python, 我爱你
#
# 有文件b.txt
# 内容如下:
#
# hello
#
# 把文件a.txt和b.txt合并为c.txt
# 思路:把文件a.txt内如读出来放到变量a
# 把文件b.txt内如读出来放到变量b
# 把a + b 结果写入的c.txt中
file = open(r"c:\file\temp\a.txt", "r")
a = file.read()
file.close()
file = open(r"c:\file\temp\b.txt", "r")
b = file.read()
file.close()
file = open(r"c:\file\temp\c.txt", "w")
file.write(a + b)
file.close()
10.with 语法
使用with语法后,不需要我们在使用close()方法,with语法会自动帮我们关闭文件 目的:清理资源
with open("a.txt","r",encoding="utf8") as file:
# with 一旦离开了with代码块,文件就会自动关闭
print(file.read())
1万+

被折叠的 条评论
为什么被折叠?



