老男孩Day8

Posted dymlnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩Day8相关的知识,希望对你有一定的参考价值。

今天是老男孩培训的第8天,大致内容整理如下:

1.文件的操作:

  1.文件路径:文件路径分为绝对路径和相对路径,绝对路径指从根目录到指定文件,详细的路径。相对路径指你所在位置的同一位置的文件。

  2.文件的编码方式,字符串形式(str)居多

  3.操作方式:只读,只写,追加,读写等等。。。

  先建立一个文档,内容为‘AAA’

  

f = open(a,mode=r,encoding=utf-8)
content = f.read()
print(content)
f.close()

技术分享图片

要注意的是,以什么编码形式存储的文件,就要以什么形式打开,否则就会乱码,非文字类用‘rb’(byts)

 

只写:w

  

f = open(a,mode=w,encoding=utf-8)
f.write(BBB)
f.close()

技术分享图片  该操作将原有的文档a清空然后写入‘BBB‘注意会清空原有内容,如果没有该文件则创建文件

 

byte也是用‘wb’

 

追加:

  

f = open(a,mode=a,encoding=utf-8)
f.write(CCC)
f.close()

技术分享图片该操作不会清楚原有内容,故为追加,bytes类型为ab

 

读写:

  

f = open(a,mode=r+,encoding=utf-8)
print(f.read())
f.write(DDD)
f.close()

技术分享图片

f = open(a,mode=r+,encoding=utf-8)
f.write(DDD)
print(f.read())
f.close()

技术分享图片技术分享图片**这里的意思是,在读写操作中先写后读也是存在的,但是先写后读会在光标处,也就是一开始加入你的字符,然后从光标出读,也就是写的内容不会读。byts是r+b

 

写读:

  

f = open(a,mode=w+,encoding=utf-8)
f.write(EEE)
print(f.read())
f.close()

技术分享图片因为是w+所以依旧会先清空

 

常用方法:

  .seek()  光标移动

f = open(a,mode=r,encoding=utf-8)
f.seek(2)
content = f.read()
print(content)
f.close()

技术分享图片文件中的是EEE,为什么会读出一个E呢?因为你用seek移动到了第二个字节处,再读就是只有一个E

 

f = open(a,mode=r,encoding=utf-8)
f.seek(3)
content = f.read()
print(content)
f.close()

技术分享图片技术分享图片为什么只少输出一个呢?因为UTF-8中,一个中文3字节,而seek方法按字节移动,如果是2则会报错。

 

.tell()  告诉你光标的位置

  

f = open(a,mode=r,encoding=utf-8)
f.seek(3)
content = f.tell()
print(content)
f.close()

技术分享图片因为seek是按字节,所以tell也是按照字节

 

.readtable()

  是否可读

.truncate()

  截取一段去读

.readline()

  一行一行读

.readlines()

  每一行当成列表中的一个元素

 

 

在操作中也可以使用

with open () as 句柄

来代替原有的

 = open()

.close()

 

编码的补充:

  bytes转str

  .decode()

  

以上是关于老男孩Day8的主要内容,如果未能解决你的问题,请参考以下文章

python学习 day8 题型做法总结

老男孩网络安全课程主要学啥?

老男孩Python 课堂笔记_Day2

老男孩Day11

老男孩python学习笔记一

老男孩DAY1作业二