Python的文件操作

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
路在脚下,勇往直前!

        文件被广泛应用于用户和计算机的数据交换。Python 程序可以从文件读取数据,也可以向文件写入数据。用户在处理文件过程中,可以操作文件内容,也可以管理文件目录。

一、文件的概念:

        文件是数据的集合,以文本、图像、音频、视频等形式存储在计算机的外部介质中。存储文件的介质可以是本地存储、移动存储或网络存储等形式,最典型的存储介质是磁盘。根据文件的存储格式不同,可以分为文本文件和二进制文件两种形式。

        文本文件由字符组成,这些字符按 ASCIl码、UTF-8或Unicode 等格式进行编码,文件内容方便查看和编辑。Windows记事本创建的.txt格式的文件就是典型的文本文件,以.py 为扩展名的Python 源文件、以.html为扩展名的网页文件等都是文本文件。文本文件可以被多种编辑软件创建、修改和阅读,常见的编辑软件有记事本、Noptpad++等。
        二进制文件存储的是由0和1组成的二进制编码。二进制文件内部数据的组织格式与文件用途有关。典型的二进制文件包括.bmp格式的图片文件、avi格式的视频文件、各种计算机语言编译后生成的文件等。
        二进制文件和文本文件最主要的区别在于编码格式,二进制文件只能按字节处理,文件读写的是 Bytes 字符串。
        无论是文本文件还是二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作是不同的。

        编码就是用数字来表示符号和文字,它是符号、文字存储和显示的基础。我们经常可以看到
的用密码对文件加密,之后进行传输和破译,就是一种编码和解码的过程。计算机有很多种编码方式。最早的编码方式是 ASCIl码,即美国标准信息交换码,仅对 10个数字、26 个大写英文字符、26 个小写英文字符及其他一些常用符号进行了编码。ASCIl 码采用8位(1字节)编码,因此最多只能表示 256个字符。
        随着信息技术的发展,汉语、日语、阿拉伯语等不同语系的文字都需要进行编码,于是又有了 UTF-8、Unicode、GB 2312、GBK 等格式的编码。采用不同的编码意味着把同一字符存入文件时,写人的内容可能不同。Python 程序读取文件时,一般需要指定读取文件的编码方式,否则程序运行时可能出现异常。
        Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,它是编码转换的基础,编码转换时,先把一种编码的字符串转换成 Unicode 编码的字符串,然后再转换成其他编码的字符串。
        UTF-8编码是国际通用的编码方式,用8位(1字节)表示英语(兼容ASCIl码),以24位(3字节)表示中文及其他语言,UTF-8对全世界所有国家的字符都进行了编码。若文件使用了UTF-8编码格式,在任何平台下(如中文操作系统、英文操作系统、日文操作系统等)都可以显示不同国家的文字。Python语言源代码默认的编码方式是 UTF-8。
        GB 2312编码是中国制定的中文编码,用1字节表示英文字符,用2字节表示汉字字符。GBK是对GB 2312的扩充。
        需要注意的是,采用不同的编码方式,写人文件的内容可能是不同的。就汉字编码而言,GBK编码的1个汉字占2个字节空间,UTF-8编码的1个汉字占3个字节空间,Unicode 编码中的个汉字占2个字节空间。

        文件指针是文件操作的重要概念,Python 用指针表示当前读/写位置。在文件的读写过程中文件指针的位置是自动移动的,用户可以使用tell()方法测试文件指针的位置,使用seek()方法移劲指针的位置。以只读方式打开文件时,文件指针会指向文件开头;向文件中写入数据或追加数据时,文件指针会指向文件末尾。通过设置文件指针的位置,可以实现文件的定位读写。

二、文件读写模式:

 

三、文件读/写操作的常用方法 :

 四、os.path 模块常用的文件处理函数:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/435159.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用nvidia-ml-py事实监控GPU状态

平时监控GPU状态最常用的是watch配合nvidia-smi指令,但有时可能不仅仅需要监控,还需要记录状态数据,比如GPU的显存变化以及利用率变化等等。本文提供了一个使用nvidia-ml-py包编写的简易Demo,该Demo能够实现简易版的nvidia-smi功能…

[云原生] K8s之pod控制器详解

Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元。所以需要有工具去操作和管理它们的生命周期,这里就需要用到控制器了。 Pod 控制器由 master 的 kube-controller-manager 组件提供,常见的此类控制器有 Replication Controller、ReplicaSet、Deployment、…

openssl3.2 - exp - 产生随机数

文章目录 openssl3.2 - exp - 产生随机数概述笔记END openssl3.2 - exp - 产生随机数 概述 要用到openssl产生的随机数, 查了资料. 如果用命令行产生随机数, 如下: openssl rand -hex -num 6 48bfd3a64f54单步跟进去, 看到主要就是调用了一个RAND_bytes(), 没其他了. 官方说…

美国站群服务器使用技巧与注意事项

美国站群服务器使用技巧与注意事项有哪些?RAKsmart小编为您整理发布美国站群服务器使用技巧与注意事项,希望对您有帮助。 美国站群服务器的使用技巧主要包括远程管理、灵活配置和备份还原,具体如下: 1. **远程管理**:用户可以通过…

Promisification、微任务

前提摘要 Promise 对象的构造器(constructor)语法如下: let promise new Promise(function(resolve, reject) { // executor }); 传递给 new Promise的函数被称为 executor,当 new Promise 被创建,executor 会自动…

本地部署websocket服务端并结合内网穿透实现固定公网地址连接

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

So you think you understand IP fragmentation?

文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自:https://lwn.net/Articles/960913/ February 7, 2024This article was …

英福康INFICON真空计VGC012-103-401使用说明

英福康INFICON真空计VGC012-103-401使用说明

【C++ Primer Plus学习记录】break和continue语句

break和continue语句都使程序能够跳过部分代码。可以在switch语句或任何循环中使用break语句,使程序跳到switch或循环后面的语句处执行。continue语句用于循环中,让程序跳过循环体中余下的代码,并开始新一轮循环(参见图6.4&#x…

Unity性能优化篇(八) 导入的模型网格优化设置

模型导入Unity后,可以选中这个模型,在Inspector窗口设置它的属性。下面说的都是可自定义选择优化的地方 Model选择卡: 1.在Model选项卡,启用Mesh Compression可以压缩模型,压缩程度越高,模型精度越低,但是…

GEE 将裁剪后的Sentinel-2影像 在ArcGIS中去除空值

在ArcGIS中,可以使用栅格计算器(Raster Calculator)工具来设置NoData值为空。以下是在ArcGIS中将NoData值设置为空的步骤: 打开ArcGIS软件并加载下载的Sentinel-2影像数据。 影像Nodata空值以黑色背景呈现,影响矢量数据…

使用 Docker 部署 Stirling-PDF 多功能 PDF 工具

1)Stirling-PDF 介绍 大家应该都有过这样的经历,面对一堆 PDF 文档,或者需要合并几个 PDF,或者需要将一份 PDF 文件拆分,又或者需要调整 PDF 中的页面顺序,找到的线上工具 要么广告满天飞,要么 …

OpenCV与机器学习:OpenCV实现主成分分析

OpenCV实现主成分分析 前言主成分分析(PCA)数据生成画图cv2.PCACompute绘制主成分分析结果 前言 维数灾难是指出现一定数量的特征(或者维度)后,分类器的性能将开始下降。特征越多,数据集中的信息就越多。但…

当前爆火的:ChatGPT4、Claude3、Gemini、Sora、GPTs及AI领域中的集中大模型的最新技术

原文链接:当前爆火的:ChatGPT4、Claude3、Gemini、Sora、GPTs及AI领域中的集中大模型的最新技术 第一:2024年AI领域最新技术 1.最新超强模型Claude3使用 2.OpenAI新模型-GPT-5 3.谷歌新模型-Gemini使用 4.Meta新模型-LLama3 5.阿里巴巴…

[C语言]——C语言常见概念(1)

目录 一.C语言是什么、 二.C语言的历史和辉煌 三.编译器的选择(VS2022为例) 1.编译和链接 2.编译器的对比 3.VS2022 的优缺点 四.VS项目和源文件、头文件介绍 五.第⼀个C语言程序 ​​​​​​​ 一.C语言是什么、 ⼈和⼈交流使⽤的是⾃然语⾔&…

时间序列-AR MA ARIMA

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ ,常常会使用统计方法如最小二乘法、信息准则(如AIC、BIC&#xf…

15:Zookeeper高可用集群|分布式消息队列Kafka|搭建高可用Hadoop集群

Zookeeper高可用集群|分布式消息队列Kafka|搭建高可用Hadoop集群 Zookeeper集群Zookeeper角色与特性Zookeeper角色与选举Zookeeper的高可用Zookeeper可伸缩扩展性原理与设计Zookeeper安装zookeeper集群管理 Kafka概述在node节点上搭建3台kafka 高可用Had…

EdgeX Foundry - 导出数据到 MQTT 服务

文章目录 一、概述1.安装说明2.安装 EMQX3.MQTTX 工具 二、安装部署1.docker-comepse2.修改配置3.启动 EdgeX Foundry4.访问 UI4.1. consul4.2. EdgeX Console 5.测试 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs/edgex/devi…

数字化时代下的内部审计转型方法与步骤

内部审计是一种独立的、客观的确认和咨询活动,包括鉴证、识别和分析问题以及提供管理建议和解决方案。狭义的数字化转型是指将企业经营管理和业务操作的各种行为、状态和结果用数字的形式来记录和存储,据此再对数据进行挖掘、分析和应用。广义的数字化转…

HTML入门:简单了解 HTML 和浏览器

你好,我是云桃桃。今天来简单了解一下 HTML 以及浏览器。 HTML 是什么? HTML(全称:Hypertext Markup Language)是一种标记语言,用于创建和呈现网页的结构和内容。 它由一系列标签(或称为元素…