python入门系列:文件操作 python的文件操作
bigegpt 2024-10-05 13:40 3 浏览
操作模式
r
""" 以只读方式打开文件(默认),文件的指针会放在文件的开头 若文件不存在,会报错 """ f = open("a.txt", "r") # 在同级目录下打开文件 content = f.read() print(content)
w
""" 以只写方式打开文件,文件的指针也在文件开头,进行覆盖写入(先清空后写入) 若文件不存在,会创建一个新的文件 """ f = open("a.txt", "w") f.write("66666")
a
# 与 w唯一不同的是,文件的指针会放在文件的末尾
增加b操作
""" 以二进制的方式进行文件操作 rb, wb, ab 将一张图片的一半内容写入到另外一个图片中 第二章图片可以打开浏览,是只有第一张一半的内容,还是图片质量下降呢?大家可以试一下 """ fromFile = open("pic.jpg", "rb") content = fromFile.read() fromFile.close() writeLen = len(conten) // 2 toFile = open("pic2.jpg", "wb") toFile.write(content[0:writeLen]) toFile.close()
文件指针的定位
""" seek(offset, whence=0) whence表示指定文件指针所在的位置 whence=0:文件开始处,offset >= 0 whence=1:当前的位置,offset is free whence=2:文件结尾处,offset <= 0 但是对于不带 b的文件操作,whence只能为 0 """ f = open("a.txt", "r") # 当前文件内容:12345678 print(f.tell()) # 获得当前文件指针的位置 0 f.seek(2) # 向后移动两个单位 print(f.tell()) # 2 print(f.read()) # 345678 print(f.tell()) # 8
文件读操作
f.read(length):
# length默认是文件所有内容的长度,文件指针自动向后移动 f = open("a.txt", "r") # 文件内容:12345 content = f.read(2) print(content) # 12 print(f.tell()) # 4
readline(limit):
# 读取一行数据,会读入文件中的换行符 # limit:限制的最大字符数 f = open("a.txt", "r") # 文件内容:123\n456\n print(f.readline(), end='') # 123 print(f.readline(), end='') # 456
readlines():
# 按照换行符对文件内容进行处理,处理好的每一行组成一个列表返回 f = open("a.txt", "r") # 文件内容:123\n456\n printf(f.readlines()) # ['123\n', '456\n']
遍历
# 直接遍历文件 f = open("a.txt", "r") for i in f: print(i, end='') # 遍历 readlines()的结果 lines = f.readlines() for line in f: print(line, end='')
文件关闭
- 释放系统资源
- 将内存缓冲区中的内容同步到磁盘中
- 文件写入内容时,并不是立即写入到磁盘文件,而是在对应的内存缓冲区做修改,当文件关闭时,再一次性将这些修改拷贝到磁盘。
- f.flush() 可以强制刷新内容到磁盘。
其他操作
- 依赖于os模块
重命名
import os os.rename("b.txt", "a.txt") # 更改文件名称 os.rename("dir1", "dir2") # 更改目录名称
删除
import os os.remove("b.txt") # 删除 b.txt os.rmdir("dir1/dir2") # 删除了 dir2目录,若目录不为空,则无法删除 os.rmdirs("dir1/dir2") # 递归删除,若dir1为空,也删除
创建目录
import os # mkdir(path, mode) # mode=0o777 //权限设定方式参照 Linux os.mkdir("dir1") # 一次只能创建一个目录,不能递归创建多个目录
路径相关操作
# os.getcwd() 获得当前的目录 # os.chdir() 改变当前所在路径 # os.listdir() 获得目录下文件列表
文件相关案例
文件复制
import os # 只读模式,打开要复制的文件 # 追加模式,打开副本文件 scr_file = open("d.txt", "r", encoding="utf-8") obj_file = open("d_copy.txt", "w", encoding="utf-8") # 从源文件中读取内容,写入到目标文件 while True: content = scr_file.read(1024) # 如果文件过大,分块写入 if not content: break else: obj_file.write(content) # 关闭源文件和目标文件 scr_file.close() obj_file.close()
文件分类,生成文件清单
import os file_list = os.listdir(".") res = {} for file in file_list: if "." not in file: # 排除掉目录 continue appendix = file.split(".")[-1] # 获得扩展名 if appendix not in res: res[appendix] = [] res[appendix].append(file) print(res)
注:喜欢python + qun:839383765 可以获取Python各类免费最新入门学习资料!
相关推荐
- C#.NET Autofac 详解(c# autoit)
-
简介Autofac是一个成熟的、功能丰富的.NET依赖注入(DI)容器。相比于内置容器,它额外提供:模块化注册、装饰器(Decorator)、拦截器(Interceptor)、强o的属性/方法注...
- webapi 全流程(webapi怎么部署)
-
C#中的WebAPIMinimalApi没有控制器,普通api有控制器,MinimalApi是直达型,精简了很多中间代码,广泛适用于微服务架构MinimalApi一切都在组控制台应用程序类【Progr...
- .NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式
-
一:背景1.讲故事上一篇我们讲到了注解特性,harmony在内部提供了20个HarmonyPatch重载方法尽可能的让大家满足业务开发,那时候我也说了,特性虽然简单粗暴,但只能解决95%...
- C# 使用SemanticKernel调用本地大模型deepseek
-
一、先使用ollama部署好deepseek大模型。具体部署请看前面的头条使用ollama进行本地化部署deepseek大模型二、创建一个空的控制台dotnetnewconsole//添加依赖...
- C#.NET 中间件详解(.net core中间件use和run)
-
简介中间件(Middleware)是ASP.NETCore的核心组件,用于处理HTTP请求和响应的管道机制。它是基于管道模型的轻量级、模块化设计,允许开发者在请求处理过程中插入自定义逻辑。...
- IoC 自动注入:让依赖注册不再重复劳动
-
在ASP.NETCore中,IoC(控制反转)功能通过依赖注入(DI)实现。ASP.NETCore有一个内置的依赖注入容器,可以自动完成依赖注入。我们可以结合反射、特性或程序集扫描来实现自动...
- C#.NET 依赖注入详解(c#依赖注入的三种方式)
-
简介在C#.NET中,依赖注入(DependencyInjection,简称DI)是一种设计模式,用于实现控制反转(InversionofControl,IoC),以降低代码耦合、提高可...
- C#从零开始实现一个特性的自动注入功能
-
在现代软件开发中,依赖注入(DependencyInjection,DI)是实现松耦合、模块化和可测试代码的一个重要实践。C#提供了优秀的DI容器,如ASP.NETCore中自带的Micr...
- C#.NET 仓储模式详解(c#仓库货物管理系统)
-
简介仓储模式(RepositoryPattern)是一种数据访问抽象模式,它在领域模型和数据访问层之间创建了一个隔离层,使得领域模型无需直接与数据访问逻辑交互。仓储模式的核心思想是将数据访问逻辑封装...
- C#.NET 泛型详解(c# 泛型 滥用)
-
简介泛型(Generics)是指在类型或方法定义时使用类型参数,以实现类型安全、可重用和高性能的数据结构与算法为什么需要泛型类型安全防止“装箱/拆箱”带来的性能损耗,并在编译时检测类型错误。可重用同一...
- 数据分析-相关性分析(相关性 分析)
-
相关性分析是一种统计方法,用于衡量两个或多个变量之间的关系强度和方向。它通过计算相关系数来量化变量间的线性关系,从而帮助理解变量之间的相互影响。相关性分析常用于数据探索和假设检验,是数据分析和统计建模...
- geom_smooth()函数-R语言ggplot2快速入门18
-
在每节,先运行以下这几行程序。library(ggplot2)library(ggpubr)library(ggtext)#用于个性化图表library(dplyr)#用于数据处理p...
- 规范申报易错要素解析(规范申报易错要素解析)
-
为什么要规范申报?规范申报是以满足海关监管、征税、统计等工作为目的,纳税义务人及其代理人依法向海关如实申报的行为,也是海关审接单环节依法监管的重要工作。企业申报的内容须符合《中华人民共和国海关进出口货...
- 「Eurora」海关编码归类 全球海关编码查询 关务服务
-
海关编码是什么? 海关编码即HS编码,为编码协调制度的简称。 其全称为《商品名称及编码协调制度的国际公约》(InternationalConventionforHarmonizedCo...
- 9月1日起,河南省税务部门对豆制品加工业试行新政7类豆制品均适用投入产出法
-
全媒体记者杨晓川报道9月2日,记者从税务部门获悉,为减轻纳税人税收负担,完善农产品增值税进项税额抵扣机制,根据相关规定,结合我省实际情况,经广泛调查研究和征求意见,从9月1日起,我省税务部门对豆制品...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)