文件操作------python

本文介绍了文件编码的概念,如UTF-8,以及Python中使用open()函数进行文件读写的方法,包括读取模式(如r,w,a),read(),readlines(),readline()等方法的使用,以及如何进行文件关闭和自动关闭。此外,还展示了如何统计文本中特定词汇出现的次数和文件写入操作,强调了缓冲区和flush()的作用。
摘要由CSDN通过智能技术生成
文件编码概念

编码是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。

常见的文件编码

UTF-8

open()函数

打开一个已经存在的文件,或者创建一个新的文件。

语法:

open(name,mode,encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径

mode:设置打开文件的模式(访问模式:只读(r)、写入(w)、追加(a)等)

encoding:编码格式(推荐使用utf-8

f=open('python.text','r',encoding='utf-8')

注意:此时的f是open函数的文件对象,对象是python中一种特殊的数据类型,拥有属性和方法,可以使用对象,属性或对象,方法对其进行访问。

read()方法:

num表示要从文件读取的数据的长度(即字节),如果没有传入num,那么表示读取文件中所有的数据。

注意:调用多个read时下一个会再上一个结束的位置继续读取。

f=open('D:/python.text.txt','r',encoding='UTF-8')
content1=f.read(2)
print(content1)
content2=f.read(2)
print(content2)
readlines()方法:

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回会的是一个列表,其中的每一行数据为一个元素。

注意:调用多个read时,readlines会再上一个读取的结束的位置继续读取。

f=open('D:/python.text.txt','r',encoding='UTF-8')
content=f.readlines()
print(content)
readline()方法:

按行逐步读取

c1=f.readline()#第一行
c2=f.readline()#第二行
c3=f.readline()#第三行
c4=f.readline()#第四行
print(c1)
print(c2)
print(c3)
print(c4)
for循环读取文件行
for i in open('D:/python.text.txt','r',encoding='UTF-8'):
    print(i)#每一个i临时变量,就记录了文件的一行数据
f.close()关闭文件

停掉文件的占用

time.sleeep(秒)
time.sleep(100000)#程序睡眠
with oopen()可以自动实现文件的close功能
with open('D:/python.text.txt','r',encoding='UTF-8') as f:
    for line in f:
        print(line)
文件打开综合案例

统计文档中item出现的次数

with open('D:/python.text.txt','r',encoding='UTF-8') as f:
    s = 0
    for line in f:
        line=line.strip(" ")#去除开头及结尾的空格以及换行符号\n
        w=line.split()
        for l in w:
         if l=='item':
            s+=1
print(s)
f.write()读写文件
f.write("hello")

注意:

直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区

f.flush()

将内存中积攒的内容,写入到硬盘的文件之中,

注意:

直接调用flush,内容会真正写入文件

f.close()内置有flush的功能

#打开一个不存在的文件
# f=open('D:/test.txt','a',encoding="UTF-8")
# #write写入
# f.write('my name is harry')
# #f.flush刷新
# f.flush()
# f.close()
f=open('D:/test.txt','r',encoding="UTF-8")
for i in f:
 print(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值