python文件操作

来源:互联网 发布:开发手机客户端软件 编辑:程序博客网 时间:2024/06/07 16:13

python文件操作相关知识总结


  1. 读文件操作(open)

语法:open(filename,mode)
filename表示文件名,mode表示打开的模式(见图片)

这里写图片描述


f=open("text.txt","r")

使用open打开文件后就可以开始读文件了,如果只用r开头的mode读文件,文件不存在,则会抛出IOError的错误,读取成功后用函数读取文文件

f.read()#一次读取所有内容f.read(size)#每次读取最多size个字节的内容f.readline()#readline() 方法用于从文件读取整行,包括 "\n" 字符for line in f.readlines():#一次性对所有内容并按行返回list    print(line.strip()) # 把末尾的'\n'删掉#f.next():for index in range(5):    line = next(f)    print ("第 %d 行 - %s" % (index, line))

文件读取完毕后一定要调用f.close()关闭文件,因为文件对象会占用操作系统的内存资源,,并且操作系统同一时间能打开的文件数量也是有限的,一种完整的写法:

try:    f = open('a.txt', 'r')    print(f.read())finally:    if f:        f.close()#文件对象一定会关闭

另外python引入了with语句来帮我们自动调用close()函数,就像这样:

with open('a.txt', 'r') as f:    print(f.read())

注意如果要读取非UTF-8编码的文本文件需要给open()函数传入encoding参数如:

 f = open('gbk.txt', 'r', encoding='gbk') f.read()

  1. 写文件
    通过前面的图片内容,写文件的操作例子:
f = open("foo.txt", "w",encoding="UTF-8")  #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式f.write("我要学Python\n")       #写入,文件夹存在覆盖,不存在创建f.close()    #关闭文件夹

记住一定要调用close语句,因为操作系统会先把内容写到内存中,只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘,忘记调用,可能只写入了一半,如果用with语句,就会避免这个错误:

with open('test.txt', 'w') as f:    f.write('Hello, world!')

读写模式:

f = open("a.txt", "w+",encoding="UTF-8")  #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式f.write("我要学Python\n")       #写入,文件夹存在覆盖,不存在创建print("定位之前的光标位置:%s" % (f.tell()))f.flush()                       #刷新文件使内存的内容刷新至文件夹f.seek(0,0)                       #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取,file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。print("定位之后的光标位置:%s" % (f.tell()))i = f.read()print(i)f.close()    #关闭文件夹输出:定位之前的光标位置:17定位之后的光标位置:0我要学Python

writelines() 方法用于向文件中写入一序列的字符串:

seq = ["我要学Python 1\n", "我要学Python 2"]fo.writelines( seq )

文件的操作方法:
如图


(完)

原创粉丝点击