Python文件和数据格式化(教程)

news2024/9/30 15:35:50

文件是一个存储在副主存储器的数据序列,可包含任何数据内容。

概念上,文件是数据的集合和抽象,类似的,函数是程序的集合和抽象。

用文件形式组织和表达数据更有效也更加灵活。

文件包括两种形式,文本文件和二进制文件。

文本文件:一般由单一特定的编码的字符组成

二进制文件:一般由0和比特1组成,没有统一的字符编码。

无论是通过文本还是二进制创建的文件,都可以用两种方式来打开。

 我们来举个例子对比文本文件和二进制文件,

首先我们在桌面创建一个文本文件,取名example,并写入“我爱我的祖国”

如下所示:

 注意:右下角的编码方式为“UTF-8”

然后执行代码:

fp=open("example.txt","rt",encoding='UTF-8')
print(fp.readline())
fp.close()

fps=open("example.txt","rb")
print(fps.readline())
fps.close()

在这段代码中,分别使用文本文件形式和二进制形式打开文档,然后读取、关闭。

注:rt为文本文件形式、rb为二进制文件形式。

运行结果如下所示:

接下来,我们正式学习文件相关操作。

1.文件的打开和关闭

说到文件的打开关闭,不由得让我想起以前的笑话,把大象装进冰箱需要几步?

文件操作和这个笑话一样,首先打开文件、然后进行操作、最后关闭文件。

文件的打开:

文件默认处于存储状态,只有将其打开当前程序才有权操作这个文件。

打开不存在的文件,程序将会创造一个新文件来进行操作。

打开这个文件之后,文件处于被占用状态,另一个进程不得对文件进行操作。

文件打开需要使用open()函数,格式如下:

<变量名>=open(<文件名>,<打开模式>)

encoding为编码方式

文件打开模式:

“r”    :只读模式,文件不存在返回异常

“w”   :覆盖模式,文件不存在则创建、文件存在则完全覆盖

“x“    :创建写模式,文件不存在则创建、存在则返回异常

”a”    :追加写模式,文件不存在则创建、文件存在则在稳健最后追加内容

“b”    :二进制模式

“f”     :文本文件模式(默认值)

“+”    :与 r\w\x\a一同使用,在原基础上加入了同时读写功能

打开模式可以为字符串形式,其中r,w,x,a可以和b,t,+组合使用

如刚刚例子的打开方式:rt,rb

encoding为编码方式

文件的关闭:

文件使用之后,要采用close()函数关闭文件,释放文件的使用授权

使用方法如下:

<变量名>.close()

2.文件的读取

文件打开之后,根据打开方式的不同可以对文件进行对应读写操作。(记得注意编码方式)

文件的读取方法如下:

<file>.read(size=-1)

从文件读入整个文件内容,给出参数则读取前size长度的字符串

<file>.readline(size=-1)

从文件中读入一行内容,如果给出参数则读取每行前size长度的字符串

<file>.readlines(hint=-1)

从文件中读入整个文件的内容,以每一行为一个列表,如果给参入,只读取前hint行

举个例子,还是刚刚的example文件,我们多输入两行同样的文件,逐行读出。

先打开文件,然后for循环,通过readlines()逐行读取、最后关闭。

代码如下:

fp=open("example.txt","rt",encoding='UTF-8')
for line in fp.readlines():
    print(line)
fp.close()

运行结果如下:

3.文件的写入

写入的常见函数有三个

<file>.write(s)

向文件写入一个字符串

<file>.writelines(lines)

讲一个元素全为字符串的列表写入文件

<file>.seek(offset)

改变当前文件操作指针的位置,offset的值“0”为文件开头、“1”当前位置,“2”文件结尾

举个例子,向文件写入一个列表类型[“中国”、“美国”、“法国”]

代码如下:

fp=open("example.txt","w+",encoding='UTF-8')
lst=["中国","美国","法国"]
fp.writelines(lst)
fp.close()

结果如下:

至此便是python文件方面的常见操作

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐几款市面上常用的免费CMS建站系统

小编在网站建设行业从业十几年&#xff0c;很多客户或者朋友找我做网站的时候&#xff0c;都喜欢开发一个完全熟悉自己的网站系统&#xff0c;但是小编这里很不推荐。从0到1全新开发&#xff0c;成本&#xff0c;效率和成熟度这些和主流的cms建站系统比起来&#xff0c;完全没有…

文件与IO

一.文件的定义什么是文件&#xff1f;文件分为狭义上的文件和广义上的文件 狭义上的文件&#xff1a;文件夹中的文件&#xff1a;包括视频、图片、文本、可执行文件等等......其中有些文件是有后缀名的&#xff0c;而有一些文件是没有后缀名的广义上的文件&#xff1a;在Linux系…

Unix Linux、MAC、Window 如何安装配置环境?都在这里啦~

嗨害大家好鸭&#xff01;我是小熊猫~ 这次将向大家介绍如何在本地搭建Python开发环境。 Python可应用于多平台包括 Linux 和 Mac OS X。 你可以通过终端窗口输入 “python” 命令来查看本地是否已经安装Python以及Python的安装版本。 源码资料电子书:点击此处跳转文末名片获…

PHP代码审计神器——RIPS个人汉化版(2017年老文)

一、RIPS简介 RIPS是一款PHP开发的开源的PHP代码审计工具&#xff0c;由国外的安全研究者Johannes Dahse开发&#xff0c;目前开源的最新版本是0.55。 程序小巧玲珑&#xff0c;仅有不到500kb&#xff0c;其中的PHP语法分析非常精准&#xff0c;可以实现跨文件变量和函数追踪…

Virtualbox安装Windows11教程,提供虚机专用镜像下载。

微软在Windows11安装过程中增加了TPM2.0安全验证&#xff0c;所以一些老旧的电脑或者不带TPM认证协议的虚拟机都无法安装系统镜像。 这给我们体验尝鲜带来了一些小小的困扰。其实有2种解决方法可以在虚拟机中体验到Windows11带来的变化。 方法一 虚拟机启动时先加载PE系统镜…

Python 版本的常见算法模板(一)

文章目录前言排序模板排序算法归并排序KMP图邻接表Floyd 算法DijkstraBellMan-Ford 算法SPFA 算法Prim 算法Kruskra 算法染色法Hunger算法前言 翻了翻自己以前写的一些博文&#xff0c;发现的话&#xff0c;还是有一些误区没有写好的&#xff0c;所以的话这里的重新写一下&…

年薪40W的测试工程师被裁,回怼的一番话,令人沉思...

腾讯一位测试工程师被炒&#xff0c;回怼到:“反正我有技术&#xff0c;在哪不一样” 在腾讯上班的朋友给我分享了今天在他公司遇到的事情&#xff0c;他部门一位测试工程师被炒&#xff0c;具体原因好像就是跟上司闹矛盾&#xff0c;部门的都觉得非常可惜&#xff0c;因为他算…

本地修改的文件,使用git stash暂存之后不小心将暂存区清空,重新找回之前被暂存的文件

概述 问题 日常使用git 时&#xff0c;将本地所做的修改使用git stash暂存&#xff0c;使用git pull拉取代码之后&#xff0c;之间用git stash clear将git stash暂存的内容删除掉了。本文讲述如何恢复git stash clear掉的暂存区代码。 解决方法 执行指令 git log --graph -…

银行存取款程序设计(JAVA基础案例教程-黑马程序员编著-第三章-课后作业)

【案例3-2】银行存取款程序设计 【案例介绍】 案例描述 银行存取款的流程是人们非常熟悉的事情&#xff0c;用户可在银行对自己的资金账户进行存款、取款、查询余额等操作&#xff0c;极大的便利了人民群众对资金的管理。 本任务要求&#xff0c;使用所学知识编写一个银行存…

spring项目中使用策略模式

小白看了Java设计模式一书&#xff0c;晕晕乎乎&#xff0c;好像懂了&#xff0c;又好像啥都没懂。对照着书本一行行手打代码&#xff0c;完毕&#xff0c;执行&#xff0c;ok&#xff0c;设计模式已掌握。但到了项目中却又茫然。 小白我啊&#xff0c;今天尝试一下在自己的dem…

【思科设备,最常用的命令是下面这些吗!】

​在调试思科设备时&#xff0c;我们会经常使用各种命令去实现&#xff0c;但是使用最为频繁的有哪些&#xff1f;我们来看看下面频繁出现但是又非常有用且常用的命令&#xff01; 1、&#xff1f; 在使用命令行时&#xff0c;我们不可能记住所有的命令&#xff0c;有时候只能…

git的一些常用指令

1&#xff09;拷贝一个 Git 仓库到本地&#xff0c;让自己能够查看该项目&#xff0c;或者进行修改。 git clone 远程git仓库地址2&#xff09;初始化本地git仓库。 git init 3&#xff09;监控工作区的状态树&#xff0c;会把工作时的所有变化提交到暂存区&#xff0c;这里…

(七)、首页列表数据渲染【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;获取首页列表数据 1.1在index页面中编写从数据库中获取首页列表数据的方法 //获取首页列表数据getData() {let artTemp db.collection("quanzi_articles").getTemp();let userTemp db.collection("uni-id-users").field("_id,usernam…

智慧校园人脸识别系统源码

智慧校园人脸识别系统源码 技术架构&#xff1a; 后端&#xff1a;Java 框架&#xff1a;springboot 前端页面&#xff1a;vue element-ui 小程序&#xff1a;小程序原生开发 电子班牌&#xff1a;Java Android 源码有演示&#xff0c;可正常上线运营可授权。 随着智慧校…

在成都的哪个培训机构学习Java好呢?

自从小课06年进入成都这个IT培训市场以来&#xff0c;短短十几年&#xff0c;招过很多学员&#xff0c;也见证过很多机构的起起落落。心中有万分的感慨&#xff0c;总结下来有这几点分享给大家&#xff0c;在选择培训机构时能看清本质&#xff0c;找到适合自己靠谱的机构学Java…

Go大道至简之抓取网页

目录前期准备环境教程浏览器启动命令启动Rod启动浏览器Rod自动查找浏览器路径并启动输入和点击、Enter动作多页面抓取前期准备 环境 Go版本大于等于1.18Go模块源更换&#xff0c;加速模块下载go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,directRod模块 Rod…

4年经验来面试20K的测试岗,连基础都不会,还不如招应届生。

公司前段时间缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-20k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。 看简历很多都是3、4年工作经验&#xf…

chatGPT做了这么一道数学题,我陷入了沉思

已知 2cos23cosasina−3sin2a1,并且a∈(−32π,−π)2cos^{2}3cosasina-3sin^{2}a1 ,并且a\in(-\frac{3}{2}\pi,-\pi) 2cos23cosasina−3sin2a1,并且a∈(−23​π,−π) 求 2sin(π−a)−3sin(π2a))4sina−9cosa\frac{2sin(\pi-a)-3sin(\frac{\pi}{2}a))}{4sina-9cosa} 4sina−…

Sage X3 ERP的称重插件帮助食品和化工企业实现精细化管理

目录 需要称重插件管理的行业客户 Sage X3 ERP称重插件管理的两个关键单位 Sage X3 ERP称重插件的特色 Sage X3 ERP称重插件管理的重要性 需要称重插件管理的行业客户 术语“实际重量”表示在销售和运输时捕获的物品重量。生产销售家禽、肥料、钢材或任何其他需要跟踪实…

【Spark分布式内存计算框架——Spark SQL】4. DataFrame(上)

3.1 DataFrame是什么 在Spark中&#xff0c;DataFrame是一种以RDD为基础的分布式数据集&#xff0c;类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于&#xff0c;前者带有schema元信息&#xff0c;即DataFrame所表示的二维表数据集的每一列都带有名称和类型。 使…