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

扫描二维码关注公众号,回复: 2102193 查看本文章

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

例:

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'\xe6\x98\x86\xe5\x87\x8c\xe5\xb0\x8f\xe9\xbe\x99\xe5\xa5\xb3'>

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()拿到列表元素是每行字和\n 可以执行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("菜单_副本","菜单")

猜你喜欢

转载自www.cnblogs.com/gxj742/p/9295748.html
今日推荐