什么是文件

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

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

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. github最值得收藏的Bootstrap3后台管理框架

    1. AdminLTE AdminLTE是一个完全响应的后台管理模板.基于Bootstrap3框架.高度可定制,易于使用.适合许多屏幕分辨率从小型移动设备到大型台式机. GitHub AdminLTE ...

  2. 482 License Key Formatting 注册码格式化

    详见:https://leetcode.com/problems/license-key-formatting/description/ C++: class Solution { public: s ...

  3. JS执行保存在数据库中的JS代码

    function createScript(script) { var myScript = document.createElement("script"); myScript. ...

  4. 【转】JobScheduler

    JobScheduler JobScheduler是Android L(API21)新增的特性,用于定义满足某些条件下执行的任务.它的宗旨是把一些不是特别紧急的任务放到更合适的时机批量处理,这样可以有 ...

  5. CF778B(round 402 div.2 E) Bitwise Formula

    题意: Bob recently read about bitwise operations used in computers: AND, OR and XOR. He have studied t ...

  6. 详解 Handler 消息处理机制(附自整理超全 Q&A)

    Android 为什么要用消息处理机制 如果有多个线程更新 UI,并且没有加锁处理,会导致界面更新的错乱,而如果每个更新操作都进行加锁处理,那么必然会造成性能的下降.所以在 Android 开发中,为 ...

  7. Python behave in BDD

    BDD概念 全称 Behavior-driven development 中文 行为驱动开发 概念 是敏捷软件开发技术的一种,鼓励各方人员在一个软件项目里交流合作,包括开发人员.测试人员和非技术人员或 ...

  8. JQuery日期选择器插件date-input

    JQuery日期选择器插件之date-input 官方网站:http://jonathanleighton.com/projects/date-input/ 下载地址: http://github.c ...

  9. 秦晓波著的编写高质量代码-改善Java程序的151个建议一书中的线程解释错误.

    位置: 建议127: Lock与synchronized是不一样的 首先在概念上纠正这一篇内容: 援引Java源码中关于ReentrantLock的开篇说明: * A reentrant mutual ...

  10. java语言基础-类型运算细节

    代码一: public class varDemo{ public static void main(String[] args) { byte a2; a2=3+4; System.out.prin ...