Python

Python,第1张

Python

文章目录

1.文件打开形式2.文件常见 *** 作open函数打开文件注意:open函数打开中文文件close函数关闭文件read函数读取文件内容tell函数,返回文件指针当前指向seek(offset,from)函数,更改文件指针指向writelines/write函数向文件内写入数据3.文件任务(文件拆分)

1.文件打开形式

    r只读

    w只写

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

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

    a ,追加文件,不可读

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

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

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

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

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

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

    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()

运行结果

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5721282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存