---恢复内容开始---
<html>
知识点:1,文件操作的类型
2,文件游标(指针)的使用
一,文件操作:
1,字符串 类型
1> u Unicode 编码字符串,是默认字符串
2> b Binary 二进制字符 以ascii码表对照的字符
字符与ASCII之间转化:
res = ord("A") 字符转数字
res = ch(32) 数字转字符
字符与ascii码间转换 ord() 字符转换成ascii chr() ascii转换成字符
例:
li = [chr(i) for i in range(ord("a"),ord("z")+1)] print(li)
print(li) 显示出小写字母a-z的字符串
3> r 原意字符,转意符 使用字符具有它原本的含义
<1>处理文件的模式
1 t text 以文本文件类型处理文件 默认的文件打开方式,
with open(source_file,"rt") as f: #其中处理模式为r,实际为"rt"。t 为默认模式,可不写
2, b Binary 以二进制文件类型处理文件
<2> 文件打开分为:
r: 只读方式打开文件
r+ 不会创建文件,但可读写
rb 以二进制方式读取文件
w: 写入方式 ,如文件存在,则覆盖,如不存在,则创建
w+ 创建清空的可读写文件
wb 创建清空文件的二进制写入
a: 追加方式文件内容存在,则新添内容追加,如文件不存在,则创建
a+ 创建不清空文件
ab 创建追加二进制文件
x: 以写的方式打开,如文件不存在,则会报错。
#方式一f = open(m,"r",encoding="utf-8")f2 = open(n,"a",encoding="utf-8")for i in f: f2.read(f2)print(f2)f.close()
方式二
With open(source.txt,‘r‘,encoding="utf-8") as f:
with open(‘dsttxt‘,‘a+‘,encoding="utf-8") as f2:
for i in f:
f2.write(i)
方式三 此方法只使用了一个with来打开二个文件
with open(m,"r")as f,open(n,"a",encoding="utf-8") as w: for i in f: w.write(i) 使用with方式打开文件,不需要考虑f.close()with会自动释放文件,不用使用f.close(),将文件的释放交由with管理
二,游标:
以二进制形式对文件进行读写操作,非文本文件必需用b模式来处理
m = r"/Users/aibapspl/Files/media.mp4"n = r"/Users/aibapspl/Files/newme.mp4"with open(m,"rb") as f1: with open(n,"wb") as f2: for i in f1: f2.write(i)print("文件操作完成")
with open(a.txt,"a",encoding="utf-8") as f:
f.write(hello world) 在a.txt文件后面添加内容
f.flush()
文件操作时游标的操作 .seek(偏移量,偏移位置)
偏移量:指游标偏移字符的数量
偏移位置:指游标的定义位置 0 偏移位置为文件开头 默认游标在文件开头
1 偏移位置为当前游标位置
2 偏移位置为文件内容的结尾
with open(Source_File,"rb") as f: f.seek(5,2) #对游标自定义位置 为文件末尾倒数第五个停车场 x = f.read() print(x) str_data = []with open(a.mp4,"rb") as f1: data1 = f.read() f.seek(len(data1)//4) #游戏定位到整个文件长度的四分之一处 data2 = f.read(3) #在定位的游标处向后读取3个字符 str_data.append(d2)
str_data.append(data2)
f.seek(len(data)//8) #将游标定位到文件的八分之一处, data3 = f.read(4) #将取游标处向后的4个字符
str_data.append(data3)
f.seek(len(data)//10) #再交文件游标定位到文件总长的10分之一处 data4 = f.read(5) #并从文件部长的十分之一处开始同后取6个字符 str_data.append(data4)print(str_data) #把从文件中取到的内容显示出来
---恢复内容结束---
原文地址:https://www.cnblogs.com/aibapspl/p/10611517.html