什么是文件

文件是操作系统为用户提供的一个读写硬盘的虚拟单位,文件的操作就是文件的读、写。

操作过程:当我们双击文件 -<- 操作系统接收到指令请求(将用户或应用程序的读写操作转换成集体的硬盘指令) -<- 与硬盘、内存交互(读写数据) -<- 显示我们想要看到的数据。

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管理文件上下文(基本文件操作)的更多相关文章

  1. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  2. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  3. python基础之 编码进阶,文件操作和深浅copy

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...

  4. Python基础【day03】:文件操作(六)

    一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...

  5. Python基础(5)_文件操作

    一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.文件打开模式 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文 ...

  6. Python学习Day2笔记(集合和文件操作)

    1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...

  7. Python【第三篇】文件操作、字符编码

    一.文件操作 文件操作分为三个步骤:文件打开.操作文件.关闭文件,但是,我们可以用with来管理文件操作,这样就不需要手动来关闭文件. 实现原理: import contextlib @context ...

  8. Python集训营45天—Day08 (文件操作)

    目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...

  9. 小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. noi,ac第五场部分题解 By cellur925

    题目质量还是不错的,只是我太菜了== 传送门 T1:序列计数(count) 题目描述 长度为n+1的序列A,其中的每个数都是不大于n的正整数,且n以内每个正整数至少出现一次. 对于每一个正整数k=1, ...

  2. ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:

    使用sshpass配合ssh-kopy-id编写脚本批量分发密钥: 首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y 接下来我们就可以使 ...

  3. scikit-learning教程(四)选择合适的估计量

    选择正确的估计 解决机器学习问题的最困难的部分通常是找到合适的工作量. 不同的估计器更适合于不同类型的数据和不同的问题. 下面的流程图旨在给用户一些关于如何处理关于哪些估计器尝试您的数据的问题的粗略指 ...

  4. Linux修改文件的权限,拥有者,所属组

    修改文件的权限,拥有者,所属组 1.设置文件的权限(chmod) ①方式一(建议使用这种方式) 命名:chomd 755 文件名 ②方式二 命名:chomd -R +x 文件名 2.设置文件的拥有者( ...

  5. PT2264解码心得

    PT2264解码心得 最近闲暇时间在琢磨无线RF解码程序,正好在数码之家论坛中翻出大佬的解码程序(http://bbs.mydigit.cn/read.php?tid=245739),于是乎,慢慢学习 ...

  6. rhel 6.5--samba

    配置匿名共享: 服务端: [root@master ~]# yum install -y samba 或者 [root@master ~]# yum groupinstall -y "CIF ...

  7. Some Python Tricks

    python 的包管理很不好用,理解费力,故偷懒,模块仍按文件布局,写一个合并脚本将各个模块合并输出到一个脚本文件,分别管理,合并输出,回避了加载模块的问题 f-format 仅在python 3.6 ...

  8. (一)Mybatis之初步接触

    Maven的安装及环境配置 安装及配置只需按照以下三个链接的步骤走 撸帝的博客https://www.funtl.com/zh/maven/Maven-%E5%AE%89%E8%A3%85%E9%85 ...

  9. Android提供的对话框

    1.普通对话框: 给出提示信息,有yes.no两个按钮. AlertDialog dialog=new AlertDialog.Builder(this) //this代表当前Activity对象,表 ...

  10. RecyclerView 缓存机制学习笔记2

    RecyclerView 初始化所有的视图后,调用 去缓存(StaggeredGridLayoutManager), 而不是初始化一次缓存一次 存储后系统又会去调用tryGetViewHolderFo ...