ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

2022-02-03 00:03:05  阅读:184  来源: 互联网

标签:文件 读取 Python coding close txt open 函数


文章目录

1.文件打开形式

  1. r只读

  2. w只写

  3. r+,可读可写。当文件存在时会报错

  4. w+,可读可写。当文件不存在时会新建

  5. a ,追加文件,不可读

  6. a+,追加文件,可读可写

  7. rb 以二进制读模式打开。只可读

  8. rb+ 以二进制写读写模式打开。可读可写,当文件不存在时报错

  9. wb 以位进制写模式打开。只可写

  10. wb+ 以二进制读写模式打开。可读可写。当文件不存在时新建

  11. ab 以二进制追加模式打开。追加文件,不可读

  12. ab+ 以二进制读写模式打开。追加文件。可读可写

2.文件常见操作

open函数打开文件

注意,打开文件时要带路径

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径,默认当前路径
f=open("./测试.txt",'w+')#以写的形式创建文件,文件不存在时新建

在这里插入图片描述
open函数返回一个文件描述符,默认打开方式是读取。

注意:open函数打开中文文件

注意:如果要读取中文文件,需要在open函数后添加encoding='utf-8'

f=open("./测试.txt",‘r’,encoding=‘utf-8’)

close函数关闭文件

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'w+')
#关闭文件
f.close()

read函数读取文件内容

.read(size=-1),默认size=-1时读取文件的所有内容,并作为字符串返回。

如果size不为-1,则读取size个字符数据

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str=f.read()
print(str)

#关闭文件
f.close()

在这里插入图片描述

tell函数,返回文件指针当前指向

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str=f.read(8)#读取8个字
print(str)
print(f.tell())

#关闭文件
f.close()

在这里插入图片描述

seek(offset,from)函数,更改文件指针指向

from=0代表从起始位置开始计算
from=1代表从当前文件指针位置开始计算。
from=2代表从文件末尾
偏移offset个字节

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str1=f.read(8)
print(str1)
print(f.tell())

print(f.seek(5,0))

#关闭文件
f.close()

在这里插入图片描述

writelines/write函数向文件内写入数据

writelines(seq)向文件中写入字符串序列

writ(str)向文件中写入字符串str

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'w+',encoding='utf-8')

f.write("喜欢你软起来的样子")

f.close()#刷新文件

f=open("./测试.txt",'r',encoding='utf-8')

str=f.read()

print(str)

#关闭文件
f.close()

在这里插入图片描述

3.文件任务(文件拆分)

eg:

A:这个问题谁来解决?
B:我来!
===================
A:新年快乐
B:谢谢,同乐
===================
A:C++是世界上最好的语言
B:胡说,明明是PHP

将上述文件拆分为3个文件,A的放到一个3个文件中,B的放到3个文件中

def Save(A,B,cout):
 #文件保存
    Name_A="A"+str(cout)+".txt"
    Name_B="B"+str(cout)+".txt"
    Af=open(Name_A,'w')
    Bf=open(Name_B,'w')
    Af.writelines(A)
    Bf.writelines(B)
    #写入后关闭
    Af.close()
    Bf.close()    

f=open("./read.txt",'r',encoding='UTF-8')
A=[]
B=[]
cout=1#计数器
for each_line in f:
    if each_line[:6]!="======":#判断前6个字是不是===
        #字符串分割
        (role,line_spoken)=each_line.split(":",2)#字符串分割
        if role=="A":
            A.append(line_spoken)
        elif role=="B":
            B.append(line_spoken)
    else:
        Save(A,B,cout)
        #清空A B列表
        A=[]
        B=[]
        cout+=1
#将剩下的内容保存起来
Save(A,B,cout)
f.close()

运行结果
在这里插入图片描述

标签:文件,读取,Python,coding,close,txt,open,函数
来源: https://blog.csdn.net/dodamce/article/details/122772601

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有