标签:内容 刷新 file res div 指定位置 空字符串 print 部分
一、file读文件
读写文件是最常见的IO操作。Python内置了读写文件的函数。在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
读文件需要三个步骤:
1.要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符。标示符‘r‘表示读。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在
2.如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示
3.最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。
程序代码如下:
import codecs f = codecs.open(‘1.txt‘,‘r‘) print (f.read()) f.close()
注:codecs模块:主要用来解决文件乱码的问题
程序运行结果:
读取文件后,对文件进行操作,程序代码如下:
import codecs f = codecs.open(‘1.txt‘) text = f.read() print(type(text)) result = text.replace(‘1‘,‘A‘) print (result) f.close()
程序运行结果如下:
二、file写文件
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符‘w‘或者‘wb‘表示写文本文件或写二进制文件。可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。程序代码如下:
import codecs f = codecs.open(‘2.txt‘,‘wb‘) f.write(‘hello world\n‘) f.write(‘gggdgdsd\n‘) f.write(‘huangdongju\n‘) f.write(‘hello {0}\n‘.format(‘momo‘)) f.write(‘hello %s\n‘%‘huangodngju‘) f.close()
程序运行结果如下:
三、file常用的方法
1.readlines():用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。返回list,每一行作为list的单个元素。程序代码如下:
import codecs f = codecs.open(‘2.txt‘,‘rb‘) text_list = f.readlines() print (type(text_list)) print(text_list) print (text_list[0]) f.close()
程序运行结果如下:
2.readline():用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。
next():返回迭代器的下一个项目
程序代码如下:
import codecs f = codecs.open(‘2.txt‘,‘rb‘) print (f.readline()) print (f.next()) f.close()
程序运行结果:
3.write():用于向文件中写入指定字符串。
writelines():用于向文件中写入一序列的字符串。
程序代码如下:
import codecs f = codecs.open(‘3.txt‘,‘wb‘) f.write(‘huangdongju\nmomo\n11111\n‘) f.writelines([‘aaaaa\n‘,‘bbbbb\n‘,‘ccccc\n‘]) f.close()
程序运行结果:
4.tell():tell() 方法返回文件的当前位置,即文件指针当前位置。程序代码如下:
import codecs file = codecs.open(‘4.txt‘,‘wb‘) file.write(‘helloworld!\nhuangdongju\n‘) print(file.tell()) file.writelines([‘aaaaa\n‘,‘bbbbb\n‘,‘ccccc\n‘]) print (file.tell()) file.close()
程序运行结果如下:
5.seek():seek() 方法用于移动文件读取指针到指定位置。程序代码如下:
import codecs file = codecs.open(‘4.txt‘,‘wb‘) file.write(‘helloworld!\nhuangdongju\n‘) print(file.tell()) file.writelines([‘aaaaa\n‘,‘bbbbb\n‘,‘ccccc\n‘]) print (file.tell()) file.seek(0) file.write(‘all or nothing,now or never‘) file.close()
程序运行结果:
5.name属性:读取文件名
closed属性:关闭文件流返回true,未关闭返回false
6.flush():flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
四、file中with的用法
在使用文件的时候,经常会忘记关闭文件流,使用with语句可以避免这种情况的发生。程序代码如下:
import codecs with codecs.open(‘1.txt‘,‘rb‘) as file: print (file.read()) print (file.closed) print (file.closed)
程序运行结果:
打印文件的行号与内容,程序代码如下:
import codecs with codecs.open(‘1.txt‘,‘rb‘) as ff: for line, value in enumerate(ff): print (line, value)
程序运行结果如下:
制定行输出,程序代码如下:
import codecs import linecache with codecs.open(‘1.txt‘,‘rb‘) as ff: for line, value in enumerate(ff): if line == 4-1: print (value) count = linecache.getline(‘1.txt‘,4) print (count)
程序运行结果:
标签:内容 刷新 file res div 指定位置 空字符串 print 部分
原文地址:http://www.cnblogs.com/huangdongju/p/7743956.html