Python学习笔记(28-29)文件

学习主题:文件
学习日期:2020-02-09
Python 版本:3.7.4

学习的套路还是那个套路,得心应手了吧。
第28讲

1. 文件的定义

什么是文件?不说了,那简单了

2. 文件的方法

  • 打开文件
  • 在这里插入图片描述
>>> open('C:\Users\SNIPER\Desktop\testopen.txt','r')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

在这里插入图片描述

报错了,好吧。这里让我回顾《学习笔记3》中的内容。
为什么会出错呢,因为反斜杠“\”是转义字符。在这里插入图片描述
那么,如何保障这段字符串就是我们想要的呢。
那么就需要在每一个反斜杠后边再加一个反斜杠,这样手动添加太麻烦了,一个简便办法如下:
此时要请出原始字符串,只需要在字符串前面加入一个英文字母r即可。

>>> str1=r'C:\Users\SNIPER\Desktop\testopen.txt'
>>> str1
'C:\\Users\\SNIPER\\Desktop\\testopen.txt'
>>> print(str1)
C:\Users\SNIPER\Desktop\testopen.txt
>>> 

在这里插入图片描述
这下就对了。

>>> str1=r'C:\Users\SNIPER\Desktop\testopen.txt'
>>> a=open(str1)
>>> a
<_io.TextIOWrapper name='C:\\Users\\SNIPER\\Desktop\\testopen.txt' mode='r' encoding='cp936'>
>>> type(a)
<class '_io.TextIOWrapper'>
#Wrapper直译是包装纸的意思

文件对象的方法

关闭文件 f.close()
读文件 f.read
指定位置 f.seek()
写文件 f.write()
关闭文件 f.close()

#写文件
>>> str1=r'C:\Users\SNIPER\Desktop\mydemo.txt'
>>> fid=open(str1,'w')
>>> fid.write('my first demo,this is my  test ,hope the world better')
53
>>> fid.close()
#读文件
>>> fid=open(str1,'r')
>>> file=fid.read()
>>> file
'my first demo,this is my  test ,hope the world better'
>>> fid.close()

第29讲
来,做一道应用题。
这里有一个文本:
要做什么呢?
将上面这个文件中的数据进行分割并按照以下规则保存。
在这里插入图片描述

  • 甲方的对话单独保存为partA.txt文件
  • 乙方的对话单独保存为partB.txt文件
  • 有3段对话,分别要保存为:
    partA_1.txt,partA_2.txt,partA_3.txt,
    partB_1.txt,partB_2.txt,partB_3.txt,
    -注: 文件中的3段对话已经用“====”分开

目标明确,开始干吧!!!

path_oritxt=r'C:\Users\SNIPER\Desktop\mydemo\TalkPartyAB.txt'
pathname=r'C:\Users\SNIPER\Desktop\mydemo'
f=open(path_oritxt,'r')
TalkpartA=[];
TalkpartB=[];
count=1
for eachline in f:
    
    if eachline[:3]!='===':
        (role,linetalk)=eachline.split(':',1)
        if role=='甲方':    
            TalkpartA.append(linetalk)
        else:
            TalkpartB.append(linetalk)
    else:
        filename_TalkpartA=pathname+'\\TalkpartA_'+str(count)+'.txt'
        filename_TalkpartB=pathname+'\\TalkpartB_'+str(count)+'.txt'
        file_TalkpartA=open(filename_TalkpartA,'w')
        file_TalkpartB=open(filename_TalkpartB,'w')
        print(filename_TalkpartA)
        print(filename_TalkpartB)
        file_TalkpartA.writelines(TalkpartA)
        file_TalkpartB.writelines(TalkpartB)
        count=count+1;
        
        TalkpartA=[];
        TalkpartB=[];    

f.close()
file_TalkpartA.close()
file_TalkpartB.close()

输出结果:
在这里插入图片描述
在这里插入图片描述

哇偶。完成喽~

发布了75 篇原创文章 · 获赞 45 · 访问量 7310

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/104226303