1.什么是编码?
编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
编码有许多中,我们最常用的是UTF-8编码
2.为什么需要使用编码?
计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。
open(打开函数)
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:
open(name,mode,encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)
# 打开文件
f = open("D:/python study/test.txt", "r", encoding="UTF-8")
print(type(f))
read
# 读取文件1
print(f"读取10个字节的结果:{f.read(10)}")
print(f"读取全部内容的结果:{f.read()}")
readlines
# 读取文件1
# print(f"读取10个字节的结果:{f.read(10)}")
# print(f"读取全部内容的结果:{f.read()}")
print("-------------------------")
# 读取文件2
lines = f.readlines() # 读取文件的全部行,并封装到列表中
print(f"lines的类型是{type(lines)}")
print(f"lines的内容是{lines}")
readline
# 读取文件3
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f'第一行数据是{line1}')
print(f'第一行数据是{line2}')
print(f'第一行数据是{line3}')
for循环读取
# for循环读取
for line in f:
print(f"该行数据是{line}")
close( ) 关闭文件对象
通过close,关闭文件对象,也就是关闭对文件的占用;
如果不调用close,同时程序没有停止运行,那么这个文件将一直被Python程序占用。
# 文件的关闭
# time.sleep(500000)
f.close()
# with open
with open("D:/python study/test.txt", "r", encoding="UTF-8") as f:
for line in f:
print(f"该行数据是{line}")
# 课后作业
f = open("D:/python study/pythonProject/word.txt", "r", encoding="UTF-8")
# 1:读取全部内容
content = f.read()
count = content.count("itheima")
print(f"itheima在文件中出现了{count}次。")
1.打开文件
f = open(‘python.txt’,'w")
2.文件写入
f.write(‘hello world’)
3.内容刷新
f.flush()
直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区;
当调用flush的时候,内容会真正写入文件;
这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
# 文件的写入,打开不存在的文件
f = open("D:/python study/test1.txt", "w", encoding="UTF-8")
# write写入
f.write('hello world') # 内容写入到内存中
# flush刷新
f.flush() # 将内存中积攒的内容,写入到硬盘的文件中
# 程序睡眠
# time.sleep(60000)
f.close() # close方法,内置了flush的功能的
1.写入文件:
使用open函数的”w”模式进行写入
2.写入的方法有:
write(),写入内容
flush(),刷新内容到硬盘中
3.注意事项:
w模式,文件不存在,会创建新文件;
w模式,文件存在,会清空原有内容 ;
close()方法,带有flush()方法的功能
1.打开文件,通过a模式打开即可
f = open(‘python.txt’,'a)
2.文件写入
f.write(‘hello world’)
3.内容刷新 f.flush()
a模式,文件不存在,会创建文件;
a模式,文件存在,会在最后,追加写入文件.
# # 文件的追加,打开不存在的文件
# f = open("D:/python study/test2.txt", "a", encoding="UTF-8")
# # write写入
# f.write("枪枪爆头好运连连")
# f.flush()
# f.close()
# 文件的追加,打开存在的文件
f = open("D:/python study/test2.txt", "a", encoding="UTF-8")
f.write("\n卧室狙击手谢英,正片开始了。")
f.flush()
f.close()
# example
f1 = open("D:/python study/bill.txt", "r", encoding="UTF-8")
# 因为w是覆盖前面代码没启动之前存在的内容,代码启动之后重新进去的所有内容不会被覆盖,都是新内容
f2 = open("D:/python study/bill.txt.bak", "w", encoding="UTF-8")
for line in f1:
line = line.strip()
if line.split(",")[-1] == "测试":
continue # continue进入下一次循环,这一次后面的内容就跳过了
# 写出内容
f2.write(line)
# 由于前面对内容进行了strip( )的操作,所以要手动的写出换行符
f2.write("\n")
f1.close()
f2.close()