当前位置: 首页 > news >正文

Python文件的读写及常用文件的打开方式

编码格式

常见的编码格式

  • Python的解释器使用的是Unicode(内存)

  • .py文件在磁盘上使用UTF-8(外存)
    在这里插入图片描述

  • 更改编码格式

一般形式为在程序开头写 # coding:编码格式、# coding=编码格式

文件的读写原理

  • 文件的读写俗称‘’IO操作‘’(input-output先进先出)
  • 文件读写操作流程
Python操作文件
打开或新建文件
读或写文件
关闭资源
  • 操作原理

在这里插入图片描述

  • 内置函数open()创建文件对象

在这里插入图片描述

  • 语法规则
    在这里插入图片描述
file = open('a.txt', 'r')  # 创建新的文件
print(file.readlines())  # 读写文件;readlines读取的内容为一个列表,会读取文件当中所有的内容
file.close()  # 关闭资源
------------------------------------------------------------------
['中国\n', '美丽']

常用的文件打开模式

文件的类型

  • 按文件中数据的组织形式,文件分为以下两大类

**文本文件:**存储的是普遍‘’字符‘’文本,默认为Unicode字符集,可以使用记事本程序打开

**二进制文件:**把数据内容用‘’字节‘’进行存储,无法用记事本打开,必须使用专用的软件打开,举例:mp3音频文件,jpg图片,.doc文档等

打开模式描述
r以只读模式打开文件,文件的指针将会放在文件的开头
w以只写模式打开文件,如果文件不存在则创建;如果文件存在,则覆盖原有内容,文件指针在文件的开头
a以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头;如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾
b以二进制方式打开文件,不能单独使用,需要与其他模式一起使用;rb或者wb
+以读写方式打开文件,不能单独使用,需要与其他模式一起使用;a+
file = open('a.txt', 'r')  # 创建新的文件
print(file.readlines())  # 读写文件;readlines读取的内容为一个列表,会读取文件当中所有的内容
file.close()  # 关闭资源

file = open('b.txt', 'w')
file.write('Python')
file.close()

file = open('b.txt', 'a')
file.write('Python')
file.close()

# 拷贝文件
src_file = open('logo.png.txt', 'rb')
target_file = open('copylogo.png.txt', 'wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()
'wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()

相关文章:

  • MyBatis 中 #{} 和 ${} 的区别看完这篇文章一目了然
  • 实时即未来,车联网项目之原始终端数据实时ETL【二】
  • python 的re.findall的Bug以及解决方法
  • 在Windows系统上部署DHCP服务器
  • Java多线程~CAS的原理及其应用
  • [CSS]盒子模型
  • 【 C++ 】开散列哈希桶的模拟实现
  • 阿里云数据库(RDS)查看空间使用情况
  • 【C++编程语言】之 文件操作
  • 人生模式 - 如何跟潜意识对话
  • ubuntu18.04安装redis
  • 02 LaTeX文字实战应用
  • Flash:Flash动画设计软件界面的简介、Flash AS 3.0代码编程入门教程之详细攻略
  • C语言进阶——自定义类型
  • 微信公众号网课查题系统
  • 收藏网友的 源程序下载网
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS实用技巧干货
  • docker容器内的网络抓包
  • ECMAScript入门(七)--Module语法
  • Flannel解读
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Mac转Windows的拯救指南
  • Mysql数据库的条件查询语句
  • SegmentFault 2015 Top Rank
  • SpringBoot几种定时任务的实现方式
  • SQLServer之创建数据库快照
  • Vue官网教程学习过程中值得记录的一些事情
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 软件开发学习的5大技巧,你知道吗?
  • 使用Gradle第一次构建Java程序
  • 主流的CSS水平和垂直居中技术大全
  • ​比特币大跌的 2 个原因
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (9)STL算法之逆转旋转
  • (补)B+树一些思想
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (三十五)大数据实战——Superset可视化平台搭建
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)基于IDEA的JAVA基础10
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 未来三学期想要修的课 (日記)
  • (转) Face-Resources
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)四层和七层负载均衡的区别
  • .bashrc在哪里,alias妙用
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net分布式压力测试工具(Beetle.DT)