python文件操作、文件操作、读写文件、写模式
with读取文件数据内容
with open(filepath,mode,encoding) as file:#具体操作,例如:print(file.read())#查看文件所有的内容。
| with: | Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境,比如文件操作、数据库连接等。 |
| open: | open()内置函数用于打开文件,并返回一个文件对象。它接受两个参数:文件名和打开模式。 |
| filepath: | 这是你要打开的文件的路径。 |
| mode: | 打开模式(mode),用于指定文件的操作模式。 |
| encoding: | 这是用于读取或写入文件的字符编码。常见的编码有:
如果不指定 |
| as: |
|
mode操作模式
| 语 法 | 说明 |
| r:(只读模式) | 只读模式。默认模式。适用于读取文件。 |
| rb:(只读模式) | 读取二进制数据,例如图像、音频等文件。其中r表示只读操作,b表示以二进制格式打开文件。 |
| w:(写入模式) | 写入模式。覆盖写入文本内容。如果文件不存在,则会创建一个新文件。 |
| wb:(写入模式) | 覆盖写入二进制数据内容。如果文件不存在,则会创建一个新文件。 |
| a:(写入模式) | 追加模式。在文件末尾追加内容。如果文件不存在,则会创建一个新文件。 |
| x: | 独占创建模式。如果文件已存在,则会引发FileExistsError异常。 |
| b: | 二进制模式。用于读取或写入二进制文件。 |
| t: | 文本模式。默认模式,用于读取或写入文本文件。 |
| +: | 更新模式。打开文件用于读写。可以与其他模式组合使用,如'r+'、'w+'、'a+'。 |
读语法
| 语法 | 说明 |
| read() | 一次性读取整个文件的内容. |
| readline() | 每次读取一行, 包括行尾的换行符 \ n, 当读取到文件结尾时将返回一个空字符串. |
| readlines() | 一次性读取文件的所有行,并将每行内容作为一个字符串元素存放在列表. |
写语法
| 语法 | 说明 |
| write(date) | 写入的数据内容,data必须是字符串string |
读案例
with open("csdn.py","r") as file:print(file.read())
#读取csdn.py文件中全部的内容。
追加写入案例
with open("jingyu","a") as file:file.write("Welcome to csdn jingyu飞鸟 Blog\n")
#向jingyu文件中追加写入内容。
\n是换行,如果没有\n的话情况就是这样的。
覆盖写入案例
with open("jingyu","w") as file:file.write("Wait for you, hold my hand lightly.\n")
复制文本文件内容
with open("/jingyu/one.txt","r") as o,open("/jingyu/two.txt","r") as t:o.write(t.read())
复制二进制文件
with open("/jingyu/jingyu.png","rb") as o, open("/jingyu/jingyutwo.png","wb") as t:o.write(w.read())
文件及文件夹操作
| 序号 | 命令 | 说明 |
| 1 | os.getcwd() | 获取当前目录地址 |
| 2 | os.chdir(path) | 切换目录 |
| 3 | os.path.exists(filename/path) | 判断文件或文件夹是否存在 |
| 4 | os.path.basename(path) | 获取文件名 |
| 5 | os.path.dirname(path) | 获取路径 |
| 6 | os.path.split(path) | 获取路径的目录和文件名 |
| 7 | os.path.splitext(path) | 分离扩展名 |
| 8 | os.path.getsize(path) | 获取文件大小 |
| 9 | os.stat(path) | 获取文件属性 |
| 10 | os.mknod(filename) | 创建文件 |
| 11 | os.mkdir(path) | 创建文件夹 |
| 12 | os.makedirs(path) | 创建多级文件夹 |
| 13 | shutil.copyfile(filepath,filepath) | 复制文件 |
| 14 | shutil.copytree(path,path) | 复制文件夹 |
| 15 | shutil.move(filepath,path) | 移动文件 |
| 16 | os.listdir() | 查看目录列表 |
| 17 | os.remove(filepath) | 删除文件 |
| 18 | os.rmdir(path) | 删除空文件夹(空) |
| 19 | os.removedirs(path) | 删除多级文件夹(空) |
| 20 | shutil.rmtree(path) | 删除单/多级文件夹(非空) |
| 21 | os.path.isfile(filepath) | 是否为文件 |
| 22 | os.path.isdir(path) | 是否为目录 |
案例:
import os# 获取当前目录地址
print(os.getcwd())# 切换目录
os.chdir("/root/temp")
print(os.getcwd())# 创建文件
if not os.path.exists("/root/temp/demo01.txt"):os.mknod("demo01.txt")# 获取文件名
print(os.path.basename("/root/temp/demo01.txt"))# 获取路径
print(os.path.dirname("/root/temp/demo01.txt"))# 获取路径的目录名和文件名
print(os.path.split("/root/temp/demo01.txt"))# 分离扩展名
print(os.path.splitext("/root/temp/demo01.txt"))# 获取文件的大小
print(os.path.getsize("/root/temp/demo01.txt"))# 获取文件的属性
_file_detail = os.stat("/root/temp/demo01.txt")
print(os.stat("/root/temp/demo01.txt"))# 获取文件大小
print(_file_detail.st_size)# 获取文件创建时间
print(_file_detail.st_ctime)# 获取文件修改时间
print(_file_detail.st_mtime)# 获取文件访问时间
print(_file_detail.st_atime)# 创建文件夹
if not os.path.exists("/root/temp"):os.mkdir("/root/temp")# 创建多级文件夹
if not os.path.exists("/root/my/demo"):os.makedirs("/root/my/demo")# 查看目录"列表
os.chdir("/root")
print(os.listdir())# 创建文件
if not os.path.exists("/root/my/demo/test01.txt"):os.chdir("/root/my/demo")os.mknod("test01.txt")# 写入数据
_file = open("/root/my/demo/test01.txt", "w",encoding="UTF-8")
_file.write("i like python....")
_file.close()# 删除一个指定的空文件夹
os.rmdir("/root/my")
os.rmdir("/root/rm")# 删除一个指定的多级目录
os.removedirs("/root/my") # OSError: [Errno 39]
os.removedirs("/root/1/2")
# 删除目录(非空也可)import shutilshutil.rmtree("/root/my")
print(os.path.isfile("/root/data/123.png"))
print(os.path.isdir("/root/data"))
print(os.path.isfile("/root/data"))
print(os.path.isdir("/root/data/a.txt"))# 复制文件
shutil.copyfile("/root/data/hello.txt","/root/data/hellobf1.txt")# 复制文件夹
shutil.copytree("/root/data", "/root/mytest")# 移动文件
shutil.move("/root/data/123.png","/root/files/temp")# 删除文件
os.remove("/root/files/temp/123.png")相关文章:
python文件操作、文件操作、读写文件、写模式
with读取文件数据内容 with open(filepath,mode,encoding) as file:#具体操作,例如:print(file.read())#查看文件所有的内容。 with:Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境…...
【亲测可用】docker进入正在运行的容器
微信公众号:leetcode_algos_life,代码随想随记 小红书:412408155 CSDN:https://blog.csdn.net/woai8339?typeblog ,代码随想随记 GitHub: https://github.com/riverind 抖音【暂未开始,计划开始】…...
线程池吞掉异常的case:源码阅读与解决方法
1. 问题背景 有一天给同事CR,看到一段这样的代码 try {for (param : params) {//并发处理,func无返回值ThreadPool.submit(func(param));} } catch (Exception e) {log.info("func抛异常啦,参数是:{}", param) } 我:你这段代码是…...
基于mysqlbinlog恢复数据
1、把binlog转换为SQL mysqlbinlog --base64-outputdecode-rows -vv /usr/local/mysql/log-bin/mysql-bin.000003 >result.sql find / -name result.sql 2、查看events show binlog events in mysql-bin.000003; 3、回滚到3667那一行的数据 mysqlbinlog -v /usr/local/mys…...
Android_Android Studio 常用快捷键 for mac
功能快捷键运行ctrl R优化importctrl opt O格式化opt cmd L自动修正opt enter自动补齐cmd J自动生成代码cmd N搜索使用到的地方fn opt F7 ( cmd)搜索使用到的地方2shift cmd F搜索类cmd O当前文件搜索cmd F全局搜索按两下 shift搜索文件shift cmd O搜索符号opt…...
[EFI]NUC11电脑 Hackintosh 黑苹果efi引导文件
硬件型号驱动情况主板 英特尔 NUC11DBBi9(LPC Controller WM590芯片组) 处理器 11th Gen Intel Core i9-11900KB 3.30GHz 八核 已驱动内存32 GB ( 三星 DDR4 3200MHz 16GB x 2 )已驱动硬盘三星 MZVL21T0HCLR-00B00 (1024 GB / 固态硬盘)已驱动显卡AMD R…...
在Ubuntu上配置和设置防火墙UFW
在本文我们学习如何在Ubuntu上配置和设置UFW(防火墙),UFW代表“不复杂的防火墙”,它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙来说,这是非常困难的。初学者学习和配置防火墙规…...
nginx安装环境部署(完整步骤)
在部署nginx前,我们需要进行环境的部署 1.编译工具gcc,g,autoconf,automake ,make sudo apt-get install gcc g autoconf automake make 2.依赖库zlib,openssl,pcre 2.1 openssl下载地址 https://www.open…...
如何做电子骑缝章?
制作电子骑缝章的过程可以依据不同情况和所使用的工具而有所不同,但基本思路是确保印章能够跨过页面接缝,以验证文档的完整性。以下是几种常见的方法: 使用专业电子合同平台 选择平台:首先,确保你使用的电子合同平台…...
2024.6.13 bailuo-Docker 安装与镜像拉取
2024.6.13 bailuo-Docker 安装与镜像拉取 2024.6.12 bailuo-安装与镜像拉取 卸载 Docker 如果已安装旧版 Docker 则先卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-en…...
【Java开发规范】IDEA 设置 text file encoding 为 UTF-8,且文件的换行符使用 Unix 格式
1. IDEA 设置 text file encoding 为 UTF-8 file -> settings -> editor -> code style -> file encoding Transparent-native-to-asci conversion 要不要勾选?> 不推荐勾选(它的作用是用来自动转换ASCII编码,防止文件乱码&am…...
使用`LD_PRELOAD`和`jemalloc`实现C/C++信号的内存堆栈信息收集
文章目录 0. 概要1. 编译jemalloc2. 编译钩子共享库liballoc_hook.so3. 使用LD_PRELOAD加载钩子库liballoc_hook.so测试3.1 设置环境变量3.2 使用LD_PRELOAD加载钩子库并运行程序3.3 发送SIGUSR1信号以触发堆栈信息打印3.4 使用jeprof解析heap堆栈信息文件 4. 示例程序example.…...
计算机组成原理(四)Cache存储器
文章目录 Cache存储器的基本原理cache命中率、平均访问时间、效率地址映射全相联映射直接映射组相联映射 查找算法cache 存储器替换策略cache 存储器-写操作策略习题 Cache存储器的基本原理 Cache是一种高速缓冲寄存器,是为了解决CPU和主存之间速度不匹配而采用的一…...
怎么做成的文件二维码?扫阅览文件的制作方法
现在用二维码来分享或者查看文件是一种很常用的方式,比如常见的文件内容有简历、资料、作品、压缩包等等。通过将文件生成二维码能够在提升文件传输速度的同时还有利于用户体验的提升,那么如何制作可以长期提供文件预览或者下载的二维码呢? …...
js 前端 Function.prototype.call.call(0[‘toString‘], *, 16)
这个函数将 数组转任意进制 Function.prototype.call.call(0[toString], *, 16)...
李沐:用随机梯度下降来优化人生!
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— 优化 算法。吴恩达:机器学习的六个核心算法! 梯度下降优化算法是机器…...
Linux 环境.Net程序堆栈查询
# 安装 dotnet tool install --global dotnet-dump# 收集信息, 产生 core_XXX 文件 dotnet-dump collect -p pid# 分析 core_XXX 文件 dotnet dump analyze core_XXX# 列出 大于 XXX 字节的 对象 dumpheap -stat -min XXX# 查看对象具体信息 dumpobj address_XXX# 查看对应引用…...
志愿服务管理系统的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,广场论坛管理,志愿活动管理,活动报名管理 前台账户功能包括:系统首页,个人中心,志愿活动&a…...
微信小游戏5月畅销榜,新老产品更替显著,亿级爆款频出
小游戏由于微信的平台扶持,被视为可以大力发掘的蓝海,成为国内游戏最大的增长机会之一,随着越来越多的大厂和中小厂转向了小游戏赛道,每个月的小游戏畅销榜单都有不同变化。 5月的小游戏畅销榜显示,小游戏市场正经历显…...
自己想要公开自己的学习方法,但是自己很害怕自己的学习方法是一个错误的,因为对于自己而言,专升本的机会只有一次
分享自己的学习方法可能需要一定的勇气,特别是当你担心可能会受到批评或是不被理解时。以下是一些建议,可以帮助你克服这种恐惧:(kimi编辑器自己对于这些内容的基础批注) 自我肯定:首先,认识到你…...
Win10网络适配器里WLAN神秘消失?我整理了这7个真正管用的修复姿势
Win10网络适配器WLAN消失的深度修复指南:从症状到根源的7种解决方案 当WLAN选项从Win10的网络适配器中神秘消失时,大多数用户会陷入反复重启和盲目尝试的困境。本文将带您深入理解这一现象背后的系统机制,并提供一套从简单到复杂的阶梯式解决…...
别再折腾源码编译了!Ubuntu 22.04 LTS下用apt-get一键部署Asterisk PBX(附SIP账号配置详解)
别再折腾源码编译了!Ubuntu 22.04 LTS下用apt-get一键部署Asterisk PBX(附SIP账号配置详解) 在开源通信领域,Asterisk作为功能最强大的PBX系统之一,长期困扰初学者的不是其丰富的功能,而是复杂的编译安装过…...
从数学抽象到物理连接:Simscape物理网络建模的核心思想
1. 当信号流遇到物理网络:思维模式的碰撞 第一次打开Simscape工具箱时,我盯着那些陌生的元件库发了十分钟呆。作为有五年Simulink建模经验的工程师,我习惯性地开始寻找"输入端口"和"输出端口",却发现Simscape…...
避开这些坑!在Quartus中设计硬布线CPU时,我的控制器和PC模块是如何调试的
硬布线CPU调试实战:从BEQ失效到波形分析的深度排错指南 当你在Quartus中完成单周期CPU的数据通路搭建,满心欢喜点击仿真按钮时,最令人崩溃的莫过于看到BEQ指令毫无反应、存储器读写数据错乱、或者PC计数器像脱缰野马般失去控制。这些看似简单…...
算法基础(十一)—— 递归树如何看懂分治算法的运行时间
1. 定位导航 前面已经学习了分治思想: 分解 → 解决 → 合并分治算法经常可以写成递归式。 例如归并排序: 先把数组拆成左右两半; 分别排序左右两半; 再合并两个有序数组。它的运行时间可以粗略写成: T(n)2T(n/2)n T(n…...
小微团队如何利用Taotoken统一管理多项目API密钥与用量
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 小微团队如何利用Taotoken统一管理多项目API密钥与用量 对于小型开发团队而言,同时推进多个项目是常态。这些项目可能分…...
百度网盘秒传技术:告别重复上传,实现永久分享的终极方案
百度网盘秒传技术:告别重复上传,实现永久分享的终极方案 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 你是否经历过这样的烦恼&am…...
GetQzonehistory:三步轻松备份QQ空间历史说说,永久保存青春记忆
GetQzonehistory:三步轻松备份QQ空间历史说说,永久保存青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心QQ空间里的青春记忆会随着时间流逝而消…...
从‘代码打架’到‘和谐共舞’:用Gogs实战演练多人Git协作全流程(附冲突解决脚本)
从‘代码打架’到‘和谐共舞’:用Gogs实战演练多人Git协作全流程(附冲突解决脚本) 在团队开发中,Git冲突就像两个程序员同时修改同一行代码时的"拳脚相加",而解决冲突的过程则是让代码重新"和谐共舞&q…...
CANN/asc-devkit asc_le函数文档
asc_le 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/can…...
