码迷,mamicode.com
首页 > 其他好文 > 详细

老男孩Day8

时间:2017-12-25 20:57:49      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:open   内容整理   存储   使用   老男孩培训   技术   大致   trunc   常用方法   

今天是老男孩培训的第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

标签:open   内容整理   存储   使用   老男孩培训   技术   大致   trunc   常用方法   

原文地址:https://www.cnblogs.com/dymlnet/p/8110990.html

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