当前位置: 首页 > 编程日记 > 正文

属于python文件的操作有_Python的文件操作

1、初始文件操作

1、使用python读写文件使用open()函数获取文件句柄,就可以操作文件了,根据打开方式不同能执行的操作也不同。

打开方式有:

r、w、a、r+、w+、a+、rb、wb、ab、r+b、w+b、a+b,默认用的是r模式

2、只读操作(r、rb)

2.1、只读模式r

#文件的路径分隔符使用/,在windows下和linux都可以生效

f = open("C:/Users/18811/Desktop/部署用到的地址.txt",mode="r",encoding="ANSI")

content=f.read()

f.close()

2.2、只读模式rb,下面rb的方式用于读取非文本文件时,如MP3、图像、视频等,这种文件无法直接显示,rb模式下不能选择encoding

f = open("aa.mp3",mode="rb")

content=f.read()

f.close()

3、读取文件的方法

read(n)读取n个字符,如果再次读取会从当前位置继续读取,不会从头读取,如果是rb模式下,则会读取第n个字节

read()将读取全部内容,弊端:占内存,如果文件过大,容易使内存崩溃

readLine()取一行数据,但每次结尾都有\n或空格,所以要用strip()方法去掉

readLines()将每一行形成一个元素,放到一个列表中,但此方法也会极大耗内存,故不推荐#最好的读取方式,循环读取不会占内存

f = open("C:/Users/18811/Desktop/部署用到的地址.txt",mode="r",encoding="ANSI")for i inf:print(i.strip("\n"))

f.close()

4、写模式(w、wb)

4.1、写的时候,如果没有文件,会创建文件,如果文件存在,则会将原文件内容删除,再重新写入新的内容

f = open("C:/Users/18811/Desktop/你好.txt",mode="w",encoding="UTF-8")

f.write("你好,我是新搬家的阿里\nNICE TO MEET YOU!")

f.flush()

f.close()

4.2、wb模式,可以不指定打开文件的编码,但写文件时,必须将字符串转成UTF-8的bytes数据

f = open("⼩小娃娃", mode="wb")

f.write("⾦金金⽑毛狮王".encode("utf-8"))

f.flush()

f.close()

5、追加模式(a、ab)

5.1、追加模式下,写入的内容会追加到文件的结尾,追加模式下,如果没有文件也会先创建

f = open("C:/Users/18811/Desktop/你好.txt",mode="a",encoding="UTF-8")

f.write("你好,我是新搬家的阿里\n我很喜欢你")

f.flush()

f.close()

5.2、rb模式下

f = open("C:/Users/18811/Desktop/你好.txt",mode="ab")

f.write(b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe6\x88\x91\xe6\x98\xaf')

f.flush()

f.close()

6、读写模式(r+、r+b),对于读写模式, 必须是先读, 因为默认光标是在开头的, 准备读取的, 当读完了之后再进行写入, 我们以后使用频率最高的模式就是r+

f = open("⼩小娃娃", mode="r+", encoding="utf-8")

content=f.read()

f.write("麻花藤的最爱")print(content)

f.flush()

f.close()

#结果:正常的读取之后, 写在结尾

#注意r+模式下. 必须是先读取. 然后再写入

7、写读(w+, w+b),先将所有的内容清空,然后写入,最后读取,但是读取的内容是空的, 不常用

f = open("⼩小娃娃", mode="w+", encoding="utf-8")

f.write("哈哈")

content=f.read()print(content)

f.flush()

f.close()

8、追加读(a+),a+模式下, 不论先读还是后读. 都是读取不到数据的.

f = open("⼩小娃娃", mode="a+", encoding="utf-8")

f.write("⻢马化腾")

content=f.read()print(content)

f.flush()

f.close()

9、其他的一些方法

1、seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是UTF-8的中文部分要是3的倍数.

移动到开头: seek(0)

移动到结尾: seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移, 默认是0, 表

示开头, 1表示当前位置, 2表示结尾2、tell()方法 使用tell()可以帮我们获取到当前光标在什么位置3、truncate() 截断文件,删掉光标后面的所有内容

深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入或者操作文件的时候都是在结尾进行的操作.

所以如果想做截断操作,记住了, 要先挪动光标,挪动到你想要截断的位置,然后再进行截断关于truncate(n), 如果给出了n. 则从开头进行截断, 如果不给n, 则从当前位置截断. 后面的内容将会被删除

10、修改文件以及另一种打开文件的方式,文件修改: 只能将文件中的内容读取到内存中, 将信息修改完毕, 然后将源文件删除, 将新文件的名字改成老文件的名字

importos

with open("小娃娃", mode="r", encoding="utf-8") as f1,\

open("小娃娃_new", mode="w", encoding="UTF-8") as f2:for line inf1:

new_line= line.replace("大白梨", "冰糖葫芦")

f2.write(new_line)

os.remove("小娃娃") #删除源⽂文件

os.rename("小娃娃_new", "小娃娃") #重命名新⽂文件

相关文章:

[iOS]开发者证书和描述文件的作用

先说下证书吧。 然后是描述文件 转载于:https://www.cnblogs.com/wangqi1221/p/5240273.html

单元格编辑后级联汇总刷新

单元格编辑 级联刷新 PDERPDB db new PDERPDB(); int conid 0; int pid 0; string sql ""; string sqlC ""; if (int.TryParse(Pid, out pid)) { sql string.Format(" UPDATE JL_Project set PCMoney{0} where Pid{1};", pcmoney, Pid); }…

HTTP 协议的通用头域via 的意义以及作用

列出从客户端到 OCS 或者相反方向的响应经过了哪些代理服务器,他们用 什么协议(和版本)发送的请求。 当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面 添…

6-5-树的双亲表示法-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版...

课本源码部分 第6章 树和二叉树 - 树的双亲表示法 ——《数据结构》-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码习题集解析使用说明 课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑 习题集全解析 …

压力测试 闪存_产品评测 | HPE Nimble AF全闪存系列,诠释真正的高端存储

随着AI、互联网、大数据等技术快速发展,企业对存储设备的需求已踏上一个更高的级别,高性能、低延时、大容量等多种需求的应用场景愈发常见,在这种情况下,寻求能够满足相应工作负载能力的存储设备已成为企业IT管理者的当务之急。这…

Mysql无法选取非聚合列

教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)Mysql 无法选取非聚合列。 更多讨论或者错误提交,也请移步。 1. 前言 最近升级博客,给文章页面底部增加了两个按钮,可以直接…

网络设置巨形帧_Trunk的概念与设置

在二层交换机的性能参数中,常常提到一个重要的指标:TRUNK ,许多的二层交换机产品在介绍其性能时,都会提到能够支持TRUNK 功能,从而可以为互连的交换机之间提供更好的传输性能。那到底什么是TRUNK呢?使用TRU…

epoll使用详解

epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。epoll仅仅是一个异步事件的通知机制&#xf…

软件测试(一)

最近的时间内,我印象最深刻的Bug是在上学期的javaweb的大作业中。 其中的要求是在工作人员的每一条记录后面添加一个修改按钮,要求把前一个页面的内容带入到下一个页面中,由于密码采用的是MD5的加密,所以带入到后面的页面中的内容…

网络分流器-网络分流器IP网络路由交换测试技术探讨

网络分流器1 . 与流量相关的L2-3层高级测试技术探讨戎腾网络分流器: 对于一个L2-3层网络设备,最基本、最重要的测试是流量转发性能测试。作为一个网络转发设备,首先要保证可以高速、低时延、稳定地转发流量。相关的性能测试通常是通过流量生成器&#xf…

浅谈https\ssl\数字证书

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议&#xf…

input不管用 vue_Vue自定义指令实现快速读取Excel

前几天因为业务需求,所维护的而后台中出现了大量关于上传下载Excel的操作。因为我们的后台是基于Vue,并且是在 vue-element-admin 的基础上结合实际需求开发而来。vue-element-admin 中也有一些相关操作 Excel 的示例,都十分清晰明了&#xf…

数据结构——算法之(010)( 字符串的左旋转操作)

【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping163.com】 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cde…

value_counts()

Serise类型: Series.value_counts(normalizeFalse, sortTrue, ascendingFalse, binsNone, dropnaTrue) 功能:返回包含唯一值计数的对象。结果对象将按降序排列,以便第一个元素是最常出现的元素。 不包括默认的NA值。 参数:normali…

DFA和NFA

1.历史:引用正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一…

adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)

[导读] 生活环境周围信号万万千,对于一个嵌入式er。我们利用技术去了解世界、改变世界。而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进而实现很多为人服务的应…

Swift泛型

泛型是为Swift编程灵活性的一种语法&#xff0c;在函数、枚举、结构体、类中都得到充分的应用&#xff0c;它的引入可以起到占位符的作用&#xff0c;当类型暂时不确定的&#xff0c;只有等到调用函数时才能确定具体类型的时候可以引入泛型。 泛型函数 定义 fun 函数名<T,S&…

02、在层级未知情况下通过递归查找子物体

1、在在层级未知情况下通过递归查找子物体 &#xff0c;这个主要是用于UI的的层级查找中 2、代码&#xff1a; 1 using System.Collections;2 using System.Collections.Generic;3 using UnityEngine;4 5 public class EnemyManager : MonoBehaviour6 {7 8 private GameOb…

CentOS装机必备-基本设置以及缺失文件

SecureCRT中注意不要使用以Ascii方式上传文件&#xff0c;只有在需要的地方才使用。主要是虚拟机中安装CentOS每次总会做一些设置&#xff0c;记录下来方便以后。 纯粹基本设置&#xff0c;比如本地SecureCRT可以连接虚拟机中的CentOS。 复杂的非基本设置见&#xff1a;Linux …

unity替换mesh测试

直接替换SkinnedMeshRender的Mesh&#xff0c;实现所谓断肢效果(不过最近发现&#xff0c;绑定多mesh似乎更好实现这样的效果。有时间准备写一篇)&#xff1a; 只要不改变两个Mesh原始文件的层级&#xff0c;就不会出现权重的错乱问题。 权重映射的测试&#xff1a;http://www.…

matlab中patch命令_matlab 放大平移图形是超出边界问题的处理

matlab提供的图形放大和平移函数zoom和pan可以通过鼠标来控制图形&#xff0c;非常方便&#xff0c;在工具条toolbar上也有对应的按钮。但是在放大或平移自己画的数据图是&#xff0c;有时会出现部分图形超出了坐标系的边界的问题&#xff0c;非常奇怪。经分析和试验&#xff0…

关于虚拟化技术软硬件兼容问题的探讨

VMware十几年前就已经出现&#xff0c;个人最早使用VMware的时间似乎是2001年或者2002年&#xff0c;当时可以在个人电脑上通过VMware虚拟多套系统&#xff0c;用于学习研究&#xff08;做实验往往会破坏系统&#xff0c;当时VMware在一些场景下还是比较流行的&#xff09;。由…

自己开发操作系统

算是《30天自制操作系统》的读书笔记吧&#xff0c;但是我觉得原书不少地方啰嗦&#xff0c;某些做法值得商榷 http://product.china-pub.com/36828381.二进制编译器 首先下载Bzl1621.lzh&#xff0c;这个可以把二进制数编辑的软件。 BZ启动画面打开img文件2.使用虚拟机加载IMG…

广东科技学院专插本c语言考卷_广东科技学院第二届红色文化节之红色影视经典配音大赛决赛...

红色经典影视配音大赛追忆革命岁月&#xff0c;传承红色文化&#xff0c;激扬青春生命&#xff0c;传承红色精神&#xff0c;为了让广大师生感受到红色影视经典的魅力和配音的乐趣&#xff0c;加深对红色文化的理解&#xff0c;提高师生们的爱国情怀。2020年12月16日19&#xf…

Social regularizations

trust-aware &#xff1a;如何从隐式信任中导出显示信任。链接预测就是搞这一方面的么&#xff1f; 和类似谱聚类的拉普拉斯矩阵结合在一起&#xff0c;没怎么看。

阿里P7架构师的成长之路

前言 系统架构师是近几年来在国内外迅速成长并发展良好的一个职位&#xff0c;它的重要性及给互联网行业所带来的影响是不言而喻的。很多程序员把成为一名优秀的架构师作为自己职业生涯奋斗的目标&#xff0c;但很多人努力却用不对地方&#xff0c;前段时间我与在阿里的P7架构师…

cad的文字嵌入线条_带你玩转CAD!

CAD画图已经成为化工人的必备技能。什么&#xff0c;这么多CAD必备技巧你居然还不知道&#xff1f;我该拿什么拯救你&#xff0c;我最最最最最最亲爱的旁友&#xff01;&#xff01;&#xff01;下面给大家整理了50个相见恨晚的CAD技巧&#xff0c;带你玩转CAD&#xff01;&…

BZOJ1315 : Ural1557Network Attack

找到一棵dfs搜索树&#xff0c;给每条非树边一个随机非0权值&#xff0c;每条树边为所有经过它的树边的权值的异或。 那么有2种情况是合法的&#xff1a; 1.一条边权值为0&#xff0c;一条边权值非0。 2.两条边异或和为0。 排序后统计即可&#xff0c;时间复杂度$O(m\log m)$。…

android原生跳转到外网

2019独角兽企业重金招聘Python工程师标准>>> super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent new Intent(); intent.setAction("android.intent.action.VIEW"); Uri uri Uri.parse("…

linux上使用strace查看C语言级别的php源码【一种方法】

如果你希望看到C语言级别的php代码就需要使用strace 这个默认是安装了的&#xff0c;如果没有安装可以 #yum install strace查看httpd进程 #ps auxw | grep httpd有多个&#xff0c;必须停止apache [rootlocalhost usr]# /usr/local/webserver/apache2/bin/apachectl stop启动…