python-文件操作

文件操作步骤

'''

1、打开文件,得到文件句柄并赋值给1个变量

2、通过文件句柄对文件进行操作

3、关闭文件

'''

 

open函数的参数

'r'    读

'w'     写  每次重新生成一个新文件,若存在重名文件,覆盖

'a'    追加,在原有文件末尾追加内容

'b'    二进制(可添加到其它模式中使用,如‘rb’)

'+'    读/写(可添加到其它模式中使用,如‘r+’)

模式:r+,w+,rb,wb,ab,rb+,wb+,ab+。rb和ab可以快速的进行文件传输

 

f = open('test.txt')#默认’r‘模式,只读。赋值给f的是内存对象(句柄、文件名、大小、内存中的起始位置),不是文件本身

data1=f.read()

data2=f.read()

print data1

print data2#只打印了data1,因为文件里有个指针,读到最后一行,再读一次,就从最后一行开始读,想从头开始,需要把指针挪到开头

f.close()

 

f.seek(0)#将光标挪到开头

f.tell()#返回光标位置

f.seekable()#判断光标是否可移动

 

f.read()#一次读取文件所有内容,按字符读取,可设定读取多少,一个中文或一个字母都是一个字符

f.readline()#一次读取一行内容存到内存中,当读取下一行内容时,上一行在内存中删除,适合大文件读取

f.readlines()#一次读取文件所有内容存储到内存中,生成一个列表[],每行是一个元素,适合小文件读取

 

#写操作不能在文件被关闭的情况下写入

f.write()#将字符串写入文件,在行未添加

f.writelines()#将列表写入文件,写在一行,在行尾添加

 

f.name()#返回文件名

f.encoding()#返回文件编码

f.fileno()#返回文件句柄在内存中的位置

f.flush()#刷新缓存到内存,强制存储到硬盘

f.trunrcate()#不指定位置就是清空,指定就是清空位置后的内容,跟光标无关,都是从头开始

 

with open('test.txt','r') as f:

  for i in f:

    print i

相当于

f = open('test.txt','r')

for i in f:

  print i

f.close()

 

for line in f.readlines():

  print line

#输出一行内容输出一行空格。。。。。,因为文件中内行内容后面都有换行符,如果不想输出空行,就需要使用下面的语句:print (line.strip())

 

f = open('test.txt','w',encoding='utf8')

#由于python3默认使用unicode编码,所以在写入文件时需要调用utf8,pycharm(默认编码方式utf8)才能读取正确,当读取文件时,文件时utf8,pycharm也是utf8,就不需要调用了

 

 

修改文件内容

思路:由于数据存储的关系,我们只能把文件1中的内容读取出来,修改后,存储到文件2中

f2 = open('file2','w',encoding='utf8')

f1 = open('file1','r')

num = 0

for line in f1:

  num +=1

  if num = 5:

    line = ''.join([line.strip(),'小鱼儿'])

  f2.write(line)

f1 .close()

f2.close()

 

posted on 2018-03-05 18:03  梁艳's_blog  阅读(167)  评论(0编辑  收藏  举报

导航