18.07.11

Posted gxj742

tags:

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

一,文件操作

在python中打开文件使用open()函数,获取文件句柄,通过操作句柄来进行各种操作.

打开文件的方式有:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b  默认使用的是r(只读)模式.

常用操作:r,w,a,r+

1.只读操作  r

例:

f=open("明星",mode=‘r‘,encoding=‘UTF-8‘)
s=f.read()
f.close()
print(s)==<周杰伦.郭采洁.容祖儿.邓论>

encoding表示编码集.根据文件的实际保存编码进行获取数据.

绝对路径:(1)从磁盘的根目录开始一直到文件名;(2)互联网上的绝对路径.

相对路径:同一个文件下的文件,相对于当前这个程序所在的文件夹而言.如果在同一个文件夹中.则相对路径就是这个文件名.如果在上一层文件夹.则要../("../"表示返回上层目录)

read(n)读取n个字符.需要注意的是.如果再次读取.那么会在当前位置继续去读而不是从头读.

2.只写操作  w

写的时候,如果没有文件,则会创建文件;如果文件存在,则将文件中的原内容删除,再写入新内容.

例:

f=open("明星",mode=‘w‘,encoding=‘UTF-8‘)
s=f.write("昆凌")
f.flush()
f.close() 此时文件中的内容只有‘昆凌".

在w模式下不能进行读"read"操作.

3.追加  a   写入的内容会追加到文件的末尾

例:

f=open("明星",mode=‘a‘,encoding=‘UTF-8‘)
f.write("小龙女")
f.flush()
f.close() 此时文件中的内容是"昆凌小龙女"

4.只读字节     rb   读取出来的数据类型是byte类型,不能选择encoding字符集.

例:

f=open("明星",mode=‘rb‘)
s=f.read()
print(s)
f.close() ==<b‘xe6x98x86xe5x87x8cxe5xb0x8fxe9xbex99xe5xa5xb3‘>

5.只写字节  wb  可以不指定打开的文件的编码,但在写文件的时候必须将字符串转化成"utf-8"的bytes数据.

例:

f=open("小娃娃",mode=‘wb‘)
f.write("你开心吗?".encode("utf-8"))
f.flush()
f.close() 此时小娃娃文件内容"你开心吗?"

6.读写  r+  读写模式默认光标在文件开头.必须先读后写

例:

f=open("小娃娃",mode=‘r+‘,encoding="utf-8")
s=f.read()
f.write("邓超") 此时小娃娃内容只有"邓超"
print(s) ==<你开心吗?>
f.flush()
f.close()

在r+模式中,如果读取了内容,不管读取了多少.后面去写都是追加在末尾.如果没有读取,就在开头覆盖.

7.写读  w+  先将所有内容清空,然后写入,最后读取,但是读取的内容是空的.必需在写完后将光标移动到开头的位置才能读取到内容.

 

二.相关操作

1.seek()光标  移动到...位置    单位byte   

例:

f=open("明星",mode=‘r+‘,encoding="utf-8")
f.read(3)
f.seek(3) --光标移动到第一个字的位置

seek(0)在开头  seek(1)在当前  seek(2)在末尾

2.readable()判断文件是否可读

3.writable()判断文件是否可写

4.readlines()拿到列表元素是每行字和 可以执行for循环

5.strip去掉空格 换行 制表符

6.truncate()没有参数时从文件截到光标当前位置  truncate(参数)从文件头截到参数的位置.

 

三.文件内容修改

with.open打开文件夹不用写close关闭文件夹

例:

import os
with open("菜单",mode="r",encoding="utf-8")as f1,
open("菜单_副本",mode="w",encoding="utf-8")as f2:
s=f1.read()
ss=s.replace("肉","菜")
f2.write(ss)
os.remove("菜单") #删除原菜单
os.rename("菜单_副本","菜单") #将菜单_副本重命名为菜单

例:

f=open("菜单",mode="r",encoding="utf-8")
for line in f:
print(line)
f.close
梅菜扣肉
两个换行一个是文本中的换行,一个是print()中的换行.
红烧肉

酸辣土豆丝

东坡肉

例:

import os
with open("菜单",mode="r",encoding="utf-8")as f1,
open("菜单_副本",mode="w",encoding="utf-8")as f2:
for line in f1:
ss=line.replace("肉","菜")
f2.write(ss)
os.remove("菜单")
os.rename("菜单_副本","菜单")

 







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

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数