码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习第八天课后

时间:2019-03-27 22:50:47      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:comment   长度   转换   报错   之一   只读   python   ble   uil   

---恢复内容开始---

<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)          #把从文件中取到的内容显示出来
 

 

---恢复内容结束---

Python学习第八天课后

标签:comment   长度   转换   报错   之一   只读   python   ble   uil   

原文地址:https://www.cnblogs.com/aibapspl/p/10611517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!