python学习笔记(四)-文件操作

it2026-05-27  10

文件读写"""一、文件打开有3种方式 1、读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2、写 w #w模式会清空原有文件内容 写读模式 w+ 只要沾上w,他就会把文件内容清空 3、追加 a 追加读写二、文件指针 f.seek(0)#seek移动指针的时候,只对读好使,对写不好使 当open时文件指针是在初始位置1,当读取4个字节内容是文件指针位置就在4,再write时,文件指针从4移到8,所以,只要控制了文件指针,就能重复的读取了! 操作文件指针可以通过seek方法: seek(offset, whence):移动文件指针 offset:偏移量,可为负数 whence:偏移相对位置

偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:    os.SEEK_SET:表示文件的相对起始位置 os.SEEK_CUR:表示文件的相对当前位置 os.SEEK_END:表示文件的相对结束位置三、python2\3的区别file() #python2里面打开文件还可以用file()open() #python3"""

f = open('ybq.txt','a+',encoding='utf-8') f.seek(0)#seek移动指针的时候,只对读好使,对写不好使 print(f.tell())#查看当前文件指针的位置 f.truncate()#清空文件内容 print(f.read())#读取文件里面的全部内容 print(f.readline())#只读取一行的内容 print(f.readlines())#读取文件里面所有的内容,把文件里面每一行的内容放到一个list里面 f.write('mpp'+'\n') #写入字符串 print(f.read()) names = ['ybq','mpp','tlx','ply','yjy'] f.writelines(names) st = 'ybq,mpp,tlx' f.writelines(st) f.write(st) #只可写入不可迭代的对象,如字符串 tu=('sdf','sdfs','sdfsd') f.writelines(tu) d={'name':'xx'} f.writelines(d) #写的时候,传入一个可迭代的对象,如列表、元祖、字典 f.close() #打开文件,通过循环向文件中写入数据 f = open('a.txt', 'w') for i in range(3): f.write('xx'+'\n') f.close() #高效处理文件的方法 fw = open('ybq.txt',encoding='utf-8') count = 1 #直接循环文件对象的话,就是循环文件里面的每一行 for f in fw: f = f.strip() #去掉空、换行符 stu_lst = f.split(',') #按‘,’分割成列表 print(stu_lst)

文件指针实验文件data.txt如下:This file is data.txthello world!My name is mark.

文件指针初始化

f = open('data.txt','r+') print f.tell() # f.write('nice to meet you') f.flush() #flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。 print f.tell() print f.read() f.close()

相应输出://print f.tell()0//print f.tell()16//print f.read()a.txthello world!My name is mark.

说明:以’r+‘模式打开文件,文件指针所指位置为0 f.write(‘nice to meet you’)会覆盖原文件内容,文件指针随着移动 print f.read()只会输出剩余内容

f = open(r'test2.txt','a+') print f.tell() f.write('nice to meet you') f.flush() print f.tell() print f.read() f.close()

相应输出://print f.tell()52//print f.tell()68//print f.read()

说明:以’a+’模式打开,文件指针所指位置为文件尾,此例为52 f.write(‘nice to meet you’)会在原文件内容尾添加,文件指针随着移动至68 因为随着write()函数,文件指针已经移到文件末尾,所以print f.read()没有输出

转载于:https://www.cnblogs.com/lincy/p/8191173.html

最新回复(0)