python_10_文件操作
文件操作逻辑?
- 打开文件,赋值给一个对象
- 用对象操作文件
- 关闭文件
如何打开文件?
在windows中,默认格式gbk,python3.x默认unicode(utf-8),要指定编码值
语法:
f = open(“文件名”, 打开模式,encoding = “utf-8”)
-- 打开文件,赋给f,f叫文件句柄(文件内存对象)
f.操作
f.close() -- 要手动关闭
- 句柄包含(文件名字,大小,字符编码,硬盘上起始位置)
另:
with open(“文件名”, 打开模式,encoding = “utf-8”) as f:
-- 可以同时打开多个文件,逗号隔开
f.操作
-- 不需要手动关闭,有个强制缩进
打开模式:
-- r 读 - 不写默认,只能读取
-- w 写 - 没有新建一个,有写入并且自动清空原本数据,只能写
-- a 追加 - 写入数据追加在文件最后,只能追加
-- r+ 读写 - 写入数据以追加方式加入,可读(最多)
-- w+ 写读 - 先新建文件,写入数据然后可以读(少用)
-- a+ - 追加读 (和r+效果一样)
-- rb 二进制读 - 用于网络数据传输
-- wb 二进制写 - write(字符.encode(“utf-8”)),或在字符前面多个字符b
二进制和字符串严格区分
-rU - 换行字符适配,在linux中\n换行,在window中\r\n换行
-- 文件内容存取机制,插入数据,不会往后挤,而是覆盖掉
对文件有哪些操作?
-- f.read(数字) - 写入数字就读取几个字符,不写读全部,f.readable(),文件可读?
- 读取所有的值,第一次读取从文件指针出读,读完指针已经指向文件最后,所以第二次读取无值,可以通过文件指针操作把指针指向起点
-- f.readline() - 读取文件一行数据
-- f.writ(字符) - 打开文件有w,a模式,才能写,f.writable文件可写?
-- f.tell() - 打印指针当前位置,和seek方法一起使用
-- f.seek(数字) - 指针回到指定位置,f.seekable()判断指针可移动?fttp和设备文件名
-- f.encoding - 打印文件编码
-- f.fileno() - 返回操作系统文件句柄编号
-- f.name() - 打印文件名字
-- .flush - 强制把缓冲数据写入磁盘,对数据的时效性要求高
-- f.truncate() - 不写默认清空,从头截断多少个字符,断点后面内容清空
怎么用flush写一个在屏幕上打印的进度条?
import sys,time
for i in range(20):
sys.stdout.write('*')
sys.stdout.flush()
time.sleep(0.2)
如何更改文件内容?
- 先把文件加载到内存中,修改,最后写会磁盘,如果打开大文件,加载时间会有点长
- 打开文件,新建另外一个新文件,读,然后写,修改后写入新文件(不更改原文件,不需要加载到内存)
如何用第二中方法更改文件内容?
f =open(‘原文件’,’r’,encoding = ‘utf-8’)
f_new = open(‘新文件’,’w’, encoding = ‘utf-8’)
for line in f:
if “想要修改的地方” in line:
line = line.replace(“修改的内容”)
f_new.write(line)
f.close
f_new.close
python_10_文件操作的更多相关文章
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Python的文件操作
文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...
随机推荐
- 强化学习之Q-learning ^_^
许久没有更新重新拾起,献于小白 这次介绍的是强化学习 Q-learning,Q-learning也是离线学习的一种 关于Q-learning的算法详情看 传送门 下文中我们会用openai gym来做 ...
- Java学习笔记14---this作为返回值时返回的是什么
有时会遇到this作为返回值的情况,那么此时返回的到底是什么呢? 返回的是调用this所处方法的那个对象的引用,读起来有点绕口哈,有没有想起小学语文分析句子成份的试题,哈哈. 一点点分析的话,主干是& ...
- ASP.NET MVC 设置区域默认定向
public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "m_defau ...
- Qt 5中信号和槽的新语法
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...
- Linux常见命令(用户和组_待补充完善)
添加新用户: useradd [一次性创建新用户账户及设置用户HOME目录结构的简便方法] useradd -D [Linux系统的系统默认值] useradd -m test [创建新用户test目 ...
- python并开发编程之协程
一 引出协成 并发的本质是:切换+保存状态 CPU在运行行一个任务时,会在两种情况下切走去执行其他任务,一是该任务发生了阻塞,二是运行该任务的时间过长 yeild可以保存状态,yeild状态保存与操作 ...
- Java设计模式总汇二(小白也要飞)
PS:上一篇我介绍了适配器设计模式.单例设计模式.静态代理设计模式.简单工厂设计模式,如果没有看过第一篇的小火鸡可以点这个看看http://www.cnblogs.com/cmusketeer/p/8 ...
- 用Token令牌维护微服务之间的通信安全的实现
在微服务架构中,如果忽略服务的安全性,任由接口暴露在网络中,一旦遭受攻击后果是不可想象的. 保护微服务键安全的常见方案有:1.JWT令牌(token) 2.双向SSL 3.OAuth 2.0 等 本文 ...
- Java想要学到精通,这几点一定要掌握
时代更新换代速度如此之快,尤其是深处互联网行业的java程序员,技术更需要不断更新,只有及时充电,才能不被市场淘汰.千锋Java培训老师今天为大家分享Java程序员学习的6个小技巧. 1.书籍永远是知 ...
- cs231n spring 2017 lecture2 Image Classification 听课笔记
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...