文件操作
文件操作:Windows中打开文件用r或者 r原生字符串? ; :转义符 f=open(r‘C:Usersa.txt‘,‘rb‘)或者f=open(‘C:Usersa.txt‘,‘rb‘) ? 读模式:f=open(‘a.txt‘,encoding=‘utf-8‘)? # 这里要指定以什么编码方式打开文件。 ? # 读全文,只能读一次。
? 写模式不存在则创建,存在则覆盖 f.write(‘2222222n‘) #末尾默认不带换行符 追加模式不存在则创建,追加的方式写 f=open(‘a.txt‘,‘a‘,encoding=‘utf-8‘) ? 其它方法: f=open(‘a.txt‘,encoding=‘utf-8‘) print(f.name,f.encoding)????????? #查看文件名称,查看编码方式 ? 文件内光标移动:f=open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) print(f.read(3)) #读取三个字符,读完之后光标在第三个字符后面。 print(‘first_read: ‘,f.read()) #从第三个字符后面开始读。 f.seek(0) #将光标移动到指定位置 print(‘second_read: ‘,f.read()) 2、查看光标的位置 f.seek(3) #seek以字节为单位,而utf-8中一个汉字占3个字节 print(f.tell()) #查看当前光标在什么位置。 3、指定光标开始的位置 f.seek(3,0) #第二个参数有0,1,2 ; 0代表从开头开始; 1表示从当前位置开始; 2表示从文件末尾开始,倒着取。格式:f.seek(-3,2) 这种写法要求文件用rb或者wb的方式打开。 f=open(‘a.txt‘,‘rb‘) f.seek(3,0) print(f.tell()) f.seek(3,1) print(f.tell()) f.seek(3,2) print(f.tell()) rb,wb,abrb,ab 读的是bytes,写的是bytes,追加的也是bytes. 写的时候要编码,读的时候要解码。 ? 1、以bytes的方式读 f=open(‘a.txt‘,‘rb‘) print(f.read()) #读出来的内容是bytes格式的 print(f.read().decode(‘utf-8‘)) #bytes格式需要解码成Unicode f.close() 2、? 以bytes的方式写 f=open(‘a.txt‘,‘wb‘) print(f.write(‘你好啊‘.encode(‘utf-8‘))) #以wb的方式写,需要对数据进行编码 f.close() 输出结果:9? 表示占9个字节 rb,ab的方式操作文件的好处:不会有乱码。 3、图片或者视频就不能用字符的方式(encode,decode)编解码了 a=open(‘0.gif‘,‘rb‘) b=open(‘0.copy.gif‘,‘wb‘) b.write(a.read()) 1、truncate() 截断 f=open(‘c.txt‘,‘w‘,encoding=‘utf-8‘) f.write(‘1111n‘) f.write(‘2222n‘) f.truncate(3) //只能在写模式使用truncate方法 #从开头开始,截断3个字节。其余的都删除。;; 修改文件的过程:import os read_f=open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) write_f=open(‘.a.txt.swp‘,encoding=‘utf-8‘) for line in read_f: #一行一行的读取,避免内存溢出 if ‘alex‘ in line: #判断alex是否在这一行里 #先改,再写入write_f line=line.replace(‘alex‘,‘ALEXSB‘) #替换 write_f.write(line) read_f.close() write_f.close() os.remove(‘a.txt‘) os.rename(‘.a.txt.swp‘,‘a.txt‘) 上下文管理(with)用with as的方式打开文件,当with的子代码执行完了之后,文件句柄会自动关闭。 with open(‘a.txt‘,encoding=‘utf-8‘) as read_f,open(‘.a.txt.swp‘,encoding=‘utf-8‘) as write_f: for line in read_f: if ‘alex‘ in line: line=line.replace(‘alex‘,‘ALEXSB‘) write_f.write(line) os.remove(‘a.txt‘) os.rename(‘.a.txt.swp‘,‘a.txt‘) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows SDK环境和PowerShell
- Windows上的PostgreSQL Stack Builder安装代理设置
- “CGFloat”不能转换为“UInt8”和其他CGFloat问题与Swift和
- windows-phone-7 – Windows Phone 7仿真器位置数据格式
- Windows C运行时库没有像我期望的那样链接?
- 窗口 – 微小读取(重叠,缓冲)的表现超过大型连续读取?
- 我在Vista Home Premium上开发.NET有什么损失
- Windows – IIS 6 SSL通过自定义VMware克隆后中断
- windows-7 – Windows 7中的SMTP本地服务器? (运行IIS7)
- winforms – Windows窗体中BackgroundImage的位置
- Windows2003下php5.4安装配置教程(Apache2.4)
- windows – 是否可以通过串口在PuTTY上发送文本文
- windows – 为什么PE需要Original First Thunk(O
- 如何在官方Windows Python 2.5上使用时间> 2038年
- 我正在寻找适用于Windows的Python 2.7的gevent
- windows-8 – 有没有办法在调试器中查看Windows
- windows – 如何在包含引号(“”)的批处理文件中
- Windows Azure – 将.NET Web应用程序转移到Azur
- 如何优化升级RStudio和R并保留项目文件和所有设置
- maccms后门分析