python-with管理文件上下文(基本文件操作)
什么是文件
文件是操作系统为用户提供的一个读写硬盘的虚拟单位,文件的操作就是文件的读、写。
操作过程:当我们双击文件 -<- 操作系统接收到指令请求(将用户或应用程序的读写操作转换成集体的硬盘指令) -<- 与硬盘、内存交互(读写数据) -<- 显示我们想要看到的数据。
Linux:在Linux系统中一切皆文件,应用程序也是文件
为什么要有文件
数据都保存在硬盘中,我们需要读写数据,就需要操作硬盘,而通过操作文件我们就可以操作硬盘(如果没有文件,就需要我们直接操作硬盘,这个是不现实的)。
Python如何用文件
Python使用open('文件路径')方法可以打开某个具体的文件.(用open打开文件后,我们还需要手动释放文件对操作系统的占用。)
fil=open(r'D:\pycharm学习笔记\test\test.txt')# r 是为了让路径中的\变的无意。
print(fil)
<_io.TextIOWrapper name='D:\\pycharm学习笔记\\test\\test.txt' mode='r' encoding='cp936'>
读写文件的操作 .read()和.write()
1、文件操作的基础模式有三种(默认的操作模式为r模式):
r模式为read
w模式为write
a模式为append
2、文件读写内容的格式有两种(默认的读写内容的模式为b模式):
t模式为text
b模式为bytes
需要注意的是:t、b这两种模式均不能单独使用,都需要与r/w/a之一连用。
mode=‘r’标识读写格式只是读取,无法写入;mode='w'时,原文件内容会被新增内容直接覆盖;mode='a'时,新增内容会放在原文件内容尾部
文件数据只能读取,不能修改,其实当我们在原文件上添加数据时,它并不是原有的这个文件了,而是一个新的文件,只是系统做了优化,将新生成的文件替换成了原文件。
print(fil.read())
liuuliuulllllllllliuulllllllll
lllllllll
lllllllll
fil2 = open(r'D:\pycharm学习笔记\test\test.txt',mode='w',encoding='utf8')
fil2.write('嗨皮')
fil3 = open(r'D:\pycharm学习笔记\test\test.txt','r',encoding= 'utf8')
print(fil3.read())
嗨皮
fil4 = open(r'D:\pycharm学习笔记\test\test.txt','a',encoding= 'utf8')
fil4.write('哈哈哈')
fil5 = open(r'D:\pycharm学习笔记\test\test.txt','r',encoding= 'utf8')
print(fil5.read())
fil2.close()
fil3.close()
嗨皮哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
fil4.close()
fil5.close()
with管理文件操作上下文
之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open().
with open(r'D:\pycharm学习笔记\test\test.txt','r',encoding='utf8') as f1:
print(f1.read())
嗨皮哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
with open()方法不仅提供给自动释放操作系统占用的方法,并且with open 可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝。
with open(r'D:\pycharm学习笔记\test\test.txt','r',encoding='utf8') as f2,\
open(r'D:\pycharm学习笔记\test\test2.txt','w',encoding='utf8') as f3:
f3.write(f2.read())
字符编码解码用到的翻译工具
中国:GBK(国标,在硬盘中)
外国:日本—Shift_JIS,美国ASCII,韩国Euc-kr (都存在硬盘中)
国际统一:Unicode(在内存中)进行编写,存取用UTF-8(硬盘中),Unicode与UTF-8为特例他们两个能够相互识别。
保证不乱码的核心法则就是,字符按照什么标准而编码的,就要按照什么标准解码,此处的标准指的就是字符编码。
python-with管理文件上下文(基本文件操作)的更多相关文章
- python基础(内置函数+文件操作+lambda)
一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...
- Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作
本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...
- python基础之 编码进阶,文件操作和深浅copy
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...
- Python基础【day03】:文件操作(六)
一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...
- Python基础(5)_文件操作
一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.文件打开模式 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文 ...
- Python学习Day2笔记(集合和文件操作)
1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...
- Python【第三篇】文件操作、字符编码
一.文件操作 文件操作分为三个步骤:文件打开.操作文件.关闭文件,但是,我们可以用with来管理文件操作,这样就不需要手动来关闭文件. 实现原理: import contextlib @context ...
- Python集训营45天—Day08 (文件操作)
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...
- 小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- PHP数组直接相加和array_merge的区别
array_merge是很常用的数组合并函数,但是两个数组直接相加对开发也是很有帮助的,两者之间有什么差别,这里记录一下: 首先是以数字为索引 array_merge会将两个数组按照先后顺序组成一个新 ...
- 即时编译(JIT)
即时编译(JIT : just-in-time compilation): 指计算机领域里,即时编译也被成为动态翻译,是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术 即时编译 ...
- CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
关于安装请见 CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主推荐) Hue的启动 也就是说,你Hue ...
- nginx添加模块
[root@VM_0_3_centos nginx]# ./sbin/nginx -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 ...
- Python实现两已知排好序的列表合并成一个排好序的列表
#方法0.5--- lst1 = [1, 3, 7, 9, 12] lst2 = [4, 8, 9, 13, 15, 19] def merge(a, b): c = [] h = j = 0 whi ...
- 将picpick汉化及矩形截屏
- 生产环境中nginx既做web服务又做反向代理
一.写对于初入博客园的感想 众所周知,nginx是一个高性能的HTTP和反向代理服务器,在以前工作中要么实现http要么做反向代理或者负载均衡.尚未在同一台nginx或者集群上同时既实现HTTP又实现 ...
- solr 常见异常
solr4.3本地数据提交异常分析 (2013-06-19 16:03:15) 转载▼ 异常一. Exception in thread "main" java.lang.No ...
- idea web项目热部署
之前用idea写web项目的时候,一直都是改一点东西就要重启一下,很烦.今天终于忍受不了百度了一下idea怎么热部署web项目. 在此记录下. 第一步 编辑tomcat配置 第二步 选择打包的项目,并 ...
- 第一个 swift 项目
今天 学习了 一丢丢 swift,特此记录一下 ! 原来创建的时候 ,只要把 语言 由以前的Object-C改为Swift,变创建好了自己的swift工程 第一个简单的swift demo 上代码 i ...