Python——文件读写

文件读取:

 文件读取的步骤:1、打开文件  2、对它读、写  3、关闭文件

f= open('test.txt','w',encoding='utf-8')

f.read()

f.write()

f.close()

文件打开模式

r:  只读模式,对于文件只能读,不能写,打开文件不存在会报错。

r+ :读写模式, 打开文件不存在也会报错

w: 写模式。不能读,写入会覆盖以前文件里面的内容,文件不存在的话,会帮你创建一个。

w+:写模式。

#只要沾上r,文件不存在肯定会报错

#只要沾上w,文件内容肯定会被清空

a+:追加模式bbbbbbbbbbbbbbb。能读、能写、不会清空以前的内容,文件不存在会创建

文件打开模式:a+  追加模式。r 只读模式;r+读写模式;w 写模式;w+ 写读模式。

文件指针:

文件以w或者w+的模式打开,文件指针在末尾,但因为此方式打开文件时候会清空文件内容,所以指针在文件的开始说法也对。

文件以r或者r+的模式打开,文件指针在开始。

文件以a+的模式打开,文件指针在末尾。

移动指针:

file.seek(0)

打开文件使用open()方法,举个栗子:

f = open(r'haha.txt','a+',encoding='utf-8')

r:打开的时候路径的前面加个‘r’可以防止遇到转义字符转义后无法打开。

路径和文件名称:r后面的字符串,是文件的路径。可以是物理路径。如果只写文件名,表示存在了和程序文件相同的路径下。

encoding:是编码格式:一般是设置为UTF-8

读取文件的几个方法:

f.read()            #读取文件所有内容。返回的是字符串。

f.readline()      #读取文件一行的数据   返回的是个list

f.readlines()    #获取文件里面所有的数据,每一行的数据放到一个list里面,所以他是个list的数组。

可以使用  for line in f.readlines()  的方法遍历。

介绍一个从文件读取数据保存到字典的方法:

1、打开文件。2、读取文件数据。3.将数据分割为字符串,构造为list,再存入字典。4、关闭文件。

f = open(r'haha.txt','a+',encoding='utf-8')

a={}

f.seek(0)

for i in f:

      [key,value]=f.strip().split(',')

      a[key]=value

a就是最后用于存放文件数据的字典。

写入文件的方法:

f.write()           #把字符串内容全部写入文件中

f.writeline()      #向文件中写入一行数据,类型为list

f.writelines()    #向文件中写入多行数据。类型为list

写入和读取举个字符串的栗子

names = ['lxy\n','zyf\n','zxd\n','lcs\n']

for name in names:

   f.write(name+'\n')   

f.writelines(names)                  #传一个list,然后把list里面的每一个元素写入到文件中
f.seek(0)                                   #移动文件指针到最前面

f.close()                                   #关闭文件

高效读取文件

f = open('test.txt',encoding='utf-8')

for line in f:

     print(line)

高效的打开方法:使用with打开文件会自动关闭文件,不需要我们手动去关闭。

with  open("test.txt",'a+',encoding-utf-8)as f

   for i in f:

文件修改

f=open('test','a+',encoding='utf-8')

data=f.read ()

newdata=data.replace('old','new')

f.seek(0)             #文件读完以后指针在最后,要写入,指针从新回到开始。但是a+追加模式都是在末尾加。所以不加指针操作也可以。

f.write(newdata)

f.flush()

f.close()                                                                                                                                                                                                              

方式一:简单粗暴直接(文件数量小的时候可以),缺点是操作大文件时候效率差

1、先获取到文件的全部内容

2、修改内容

3、清空原文件内容

4、重新写入

f=open('test','a+',encoding='utf-8')

data=f.read ()

newdata=data.replace('123‘,‘Python’)

f.seek(0)                   

f.truncate()

f.write(new_data)

f.flush()

f.close()

方式二:高效的处理方式

1、先打开一个原文件,再打开一个空文件

2、循环处理原文件每一行的数据,处理完以后,写到新文件里

3、把原文件删除,把新文件的名字替换为原文件的名字

import os

with open('word.txt',encoding='utf-8') as f1,open('word2.txt','w',encoding='utf-8') as f2:

         for line in f1:

               line=line.ltrip()   去掉左边的空格

               if line:                  判断空行  非空即真

                     line=line.replace('你','you')       修改替换文件写入新文件

                     f2.write(line)

                                                                               

         os.remove("word.txt")

         os.rename('word2.txt','word.txt')

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

”test.txt")

posted on 2018-06-12 20:50  大阳修炼中  阅读(253)  评论(0编辑  收藏  举报

导航