文件内光标的移动
read():用户可以在read中输入数字表示读取几个字符。
'''1.txt文件中: abc在这里 ''' with open(r'1.txt','rb') as f: data = f.read(6) print(data.decode('utf8')) [abc在]ps:在二进制模式下 英文一个字节 中文三个字节。
tell() :获取光标移动的字节数
with open(r'1.txt','r',encoding='utf8') as f: data = f.read() print(f.tell()) # 打印结果 [12]seek(offset,whence) :方法用于移动文件读取指针到指定位置。
offset:需要移动偏移的字节数
whence:0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
with open(r'1.txt','rb') as f: f.seek(0,0) print(f.read().decode('utf8')) # 打印结果 [abc在这里] with open(r'1.txt','rb') as f: f.seek(9,1) print(f.read().decode('utf8')) # 打印结果 [里] with open(r'1.txt','rb') as f: f.seek(-6,2) print(f.read().decode('utf8')) # 打印结果 [这里]
文件内数据修改
有两种代码修改文件的方式:
1.覆盖写
先读取文件内的内容到内存,再在内存中完成修改,用w模式把新内容写入该文件中。
with open(r'1.txt','r',encoding='utf8') as f: data = f.read() new_data = data.replace('b','a') with open(r'1.txt','w',encoding='utf8') as f1: f1.write(new_data) '''将1.txt中的b改为a'''ps:优点硬盘只占用一块空间;缺点运行时数据量较大时会造成内存溢出。
2.重命名
用for循环依次取出文件内容进行修改然后存放到另一个文件夹内,完成后删除原文件并将新文件重命名成原文件名。
import os with open('1.txt', 'r', encoding='utf8') as read_f, \ open('.1.txt.swap', 'w', encoding='utf8') as wrife_f: for line in read_f: wrife_f.write(line.replace('ab', 'AB')) os.remove('1.txt') # 删除文件 os.rename('.1.txt.swap', '1.txt')ps:优点此命名不会造成内存溢出;缺点有一瞬间需要占用硬盘两个地方(也可能在内存中创建没有刷到硬盘)。
文件操作补充即优化
文件操作中还有一些操作需要导入模块os这里进行补充通过os模块还能对目录等进行操作:
1.文件操作
rename 重命名文件 os.rename() remove 删除文件 os.remove() import os #导入os包 os.rename('1.txt','2.txt') '''将1.txt文件名改成2.txt''' os.remove('2.txt') '''将2.txt文件删除'''2.目录操作
listdir 目录列表 os.listdir(目录名) mkdir 创建目录 os.mkdir(目录名) rmdir 删除目录 os.rmdir(目录名) getcwd 获取当前目录 os.getcwd() chdir 修改工作目录 os.chdir(目标目录) path.isdir 判断是否是目录 os.path.isdir(文件路径)
函数的简介
简介:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。能提高应用的模块性,和代码的重复利用率。
函数语法:
def 函数名(): 语句 return 需要返回的数值
一个函数有return才有返回值
def num(a,b): return a*b print(num(3,6)) '''调用num函数并输入参数 打印结果:18'''函数与循环的区别
1.循环
在相同的位置反复执行相同的代码
2.函数
在不同的位置反复执行相同的代码
未完待续。。。。。。。。
本文介绍了Python中文件操作的基本方法,包括光标移动、数据读写、覆盖写和重命名,同时讲解了函数的概念、使用以及与循环的区别。还涉及了os模块的文件和目录操作,以及如何通过函数实现代码复用和优化。
1万+

被折叠的 条评论
为什么被折叠?



