1.什么是文件
文件:操作系统为应用程序或者用户提供的一种操作硬盘的虚拟单位
强调:①文件是操作系统提供的虚拟单位②应用程序或者用户对文件的读写操作其实都是向操作系统发送指令
2.为什么要用文件
文件对应的是硬盘,如果要永久保存数据,就必须使用文件
3.如何用文件
①打开文件②读or写③关闭文件
open(文件路径,模式,编码方式) 路径分隔符:windows系统 linux系统/ rawstring 路径前加r,原始字符串
4.为什么要关闭文件
open向操作系统发起请求,操作系统操作硬盘,映射出一片硬盘空间,open有返回值,open在应用程序内占用一片内存空间,在操作系统中也占有一片空间
应用程序,python解释器有垃圾回收机制,会回收应用程序的内存而操作系统占用的内存需使用命令关闭
5.如何关闭文件
f.close()向操作系统发指令,让操作系统关闭打开的文件,回收操作系统资源,但f对应的应用程序未结束,故此时可以打印f,但无法对f进行读写操作,因为f对应的文件在操作系统中关闭了
ps:f.read()向操作系统发起请求,windows操作系统默认为gbk编码,以utf-8存的数据,open时未指定编码规则会报错
6.文件打开的上下文管理器
with open其中with会帮我们自动关闭文件
7.文件读写的操作模式:r,w,a;控制文件读写操作内容的模式:t(文本模式)b(bytes)二进制
t模式会将硬盘的二进制数据转换成unicode二进制
t,b模式不能单独使用,必须与r,w,a连用
r只读模式,文件不存在会报错;文件存在,指针跑到文件开头
w只写模式,文件不存在新建文件;文件存在会清空文件,指针跑到文件开头
a只追加写模式,文件不存在会新建文件;文件存在指针跑到文件末尾
t模式无论读写都是以字符串为单位,只能操作文本文件,一定要指定encoding参数
b模式无论读写都是以二进制位单位,可以操作所有类型的文件,一定不能指定encoding参数

readlines()全读出来,存成列表,有换行的,会识别出换行符
readline()逐行读,字符串
read()以字符串形式全读出来
\n,换行 \r回到行首 windows换行符\r\n open函数统一将换行符转换成\n
writelines(iterable)原理for参数,将参数逐行写入

8.修改文件的两种方式
1.全部读入内存
①以读的方式打开源文件②将文件内的内容一次性读入内存,在内存中完成修改③以写的方式打开源文件,将修改后的内容写回文件
2.逐行读入内存
①以读的方式打开源文件,以写的方式打开临时文件②将源文件逐行读入内存,修改后写入临时文件③删除源文件,将临时文件重命名为源文件

Day09文件操作的更多相关文章

  1. Day05 (黑客成长日记) 文件操作系列

    文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...

  2. python基础——6(字符编码,文件操作)

    今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 *****     2.字符与字节: 字符占多少字节,字符串转化 ***     3.文件操作: 操作硬盘中的一块区域:读写操作  ...

  3. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  4. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  5. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  6. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  7. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  8. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  9. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

随机推荐

  1. 关于java和python同时使用rabbitmq时队列同名问题的探讨

    问题引出: 我们知道,进程之间是不能直接通信的,但是今天学习rabbitmq时发现一个奇怪的问题,即当我开启rabbitmq,用java写好的代码给rabbitmq发送完消息后并没有急着使用java去 ...

  2. Ubuntu安装指定版本的docker

    系统环境: Ubuntu 16.0.4 安装版本: docker  17.03.2 在进现在这家公司初期,需要使用rancher部署一个k8s集群,由于rancher也是由docker启动的,加上k8 ...

  3. Unity Shader入门精要学习笔记 - 第11章 让画面动起来

    转自 冯乐乐的 <Unity Shader入门精要> Unity Shader 中的内置变量 动画效果往往都是把时间添加到一些变量的计算中,以便在时间变化时画面也可以随之变化.Unity ...

  4. MySQL在远程访问时非常慢的解决skip-name-resolve

    服务器放在局域网内进行测试时,数据库的访问速度还是很快.但当服务器放到外网后,数据库的访问速度就变得非常慢. 后来在网上发现解决方法,my.cnf里面添加 [mysqld] skip-name-res ...

  5. [github][https模式下提交记住密码]

    git版本 1.7.9以后 1.  开启 git config --global credential.helper cache 2. 设置时间 git config credential.helpe ...

  6. Linux crontab 设置定时任务

    crontab crontab 用于设置系统自动执行的周期性任务 # m h dom mon dow user command 17 * * * * root cd / && run- ...

  7. 小程序 显示Toobar

    要实现的效果 在 下面app.json  中加下列代码   "tabBar": { "color": "#7A7E83", "se ...

  8. net core 在docker(ubuntu)部署

    1.vs新建项目并发布,然后copy到linux系统上,我这里是用的虚拟机. 2 Dockerfile文件配置 FROM microsoft/dotnet:2.1-aspnetcore-runtime ...

  9. js将数字转换为带有单位的中文表示

    好不容易找到了, 实测可行, 记录一下.  到时候调用方法   addChineseUnit ,  其他两个方法在addChineseUnit中有调用 /** * 为数字加上单位:万或亿 * * 例如 ...

  10. sql 使用汇总(PQSQL)

    --sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT) ...