百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python写入文件–解释了打开,读取,追加和其他文件处理功能

off999 2024-10-04 00:20 41 浏览 0 评论

使用文件:基本语法

其中一个最重要的功能,你将需要为你在Python文件工作,用的是open(),内置的打开一个文件,并允许你的程序与它使用和工作的功能。这是基本语法:

提示:这是两个最常用的参数来调用这个函数。还有六个其他可选参数。

第一个参数:文件

open()函数的第一个参数是file,您要使用的文件的绝对或相对路径。我们通常使用相对路径,该路径指示文件相对于调用该open()函数的脚本(Python文件)的位置。 例如,此函数调用中的路径:

仅包含文件名。当您要打开的文件与Python脚本位于同一目录或文件夹中时,可以使用此命令,例如:

但是,如果文件位于嵌套文件夹中,则如下所示:

然后,我们需要使用特定的路径来告诉函数该文件在另一个文件夹中。在此示例中,这里是路径:

请注意,我们正在data/首先编写(文件夹的名称,后跟a /),然后编写(names.txt具有扩展名的文件的名称)。

提示:.txt点号后面的三个字母names.txt是文件的“扩展名”或其类型。在这种情况下,.txt表示它是一个文本文件。

第二个参数:模式

open()函数的第二个参数是mode,一个具有一个字符的字符串。该单个字符基本上可以告诉Python你打算如何处理程序中的文件。

可用的模式有:

  1. 阅读("r")。
  2. 追加("a")
  3. 写("w")
  4. 建立("x")

你还可以选择在以下位置打开文件:

  1. 文字模式("t")
  2. 二进制模式("b")

要使用文本或二进制模式,你需要将这些字符添加到主模式。例如:"wb"表示以二进制模式写入。

提示:默认模式为阅读("r")和文本("t"),表示“打开以阅读文本”("rt"),因此,open()如果要使用它们,则无需指定它们,因为它们是默认分配的。你可以简单地编写open(<file>)。

为什么选择模式?

对于Python,仅根据你计划对该文件执行的操作授予某些权限确实是对的,对吧?为什么Python应该允许你的程序执行不必要的工作?这基本上就是模式存在的原因。

考虑一下-允许程序执行不必要的工作可能会遇到问题。例如,如果你只需要读取文件的内容,则允许你的程序意外修改它可能很危险,这可能会引入错误。

如何读取文件

既然你对open()函数采用的参数有了更多的了解,让我们看看如何打开文件并将其存储在变量中以在程序中使用它。

这是基本语法:

我们只是将返回的值分配给变量。例如:

我知道你可能会问:返回的是哪种类型的值open()? 这是,一个 文件对象。

文件对象

根据Python文档,文件对象是:一个对象,将面向文件的API(使用诸如read()或write()之类的方法)暴露给基础资源。

这基本上是在告诉我们文件对象是一个对象,它使我们可以工作并与Python程序中的现有文件进行交互。

文件对象具有属性,例如:name:文件名。 已关闭:True如果文件已关闭。False除此以外。 mode:用于打开文件的模式。

例如:

现在,让我们看看如何通过文件对象访问文件的内容。

读取文件的方法

为了使我们能够处理文件对象,我们需要一种在程序中与它们“交互”的方法,而这正是方法的作用。让我们来看一些。

读()

你需要了解的第一种方法是read(), 它以字符串形式返回文件的全部内容。

这里有一个例子:

输出为:

你可以使用该type()函数来确认返回的值f.read()是一个字符串:

是的,这是一个字符串!在这种情况下,将打印整个文件,因为我们没有指定最大字节数,但是我们也可以这样做。 这里有一个例子:

返回的值限于以下字节数:

重要说明:您需要在任务完成后关闭文件以释放与该文件关联的资源。为此,您需要close()像下面这样调用方法:

Readline()与Readlines()

你可以使用这两种方法逐行读取文件。它们略有不同,因此让我们详细了解它们。readline()读取文件的一行,直到到达该行的末尾。尾随换行符(\n)保留在字符串中。 提示:(可选)你可以传递大小,即要包含在结果字符串中的最大字符数。

例如:

输出为:

这是文件的第一行。相反,readlines()返回一个列表,其中文件的所有行均作为单独的元素(字符串)。这是语法:

例如:

输出为:

请注意,\n每个字符串的末尾都有一个(换行符),最后一个除外。提示:你可以使用获得相同的列表list(f)。 你可以在程序中使用此列表,方法是将其分配给变量或在循环中使用它:

我们还可以在循环中f直接迭代(文件对象):

这些是用于读取文件对象的主要方法。现在让我们看看如何创建文件。

如何建立档案

如果需要使用Python“动态”创建文件,则可以使用"x"模式进行操作。让我们看看如何。这是基本语法:

这是一个例子。这是我当前的工作目录:

如果我运行以下代码:

在这种模式下,你可以创建文件,然后使用稍后会学到的方法来动态写入文件。 提示:该文件最初将为空,直到你对其进行修改。 奇怪的是,如果你尝试再次运行此行并且该名称的文件已经存在,则会看到此错误:

根据Python文档,此异常(运行时错误)为:在尝试创建已经存在的文件或目录时引发。 现在你已经知道如何创建文件,让我们看看如何对其进行修改。

如何修改文件

要修改(写入)文件,你需要使用write()方法。你有两种选择打开方式的方式(追加或写入)。让我们详细了解它们。

附加

“附加”是指在另一事物的末尾添加事物。该"a"模式允许你打开文件以向其中添加一些内容。例如,如果我们有此文件:

然后,我们要向其添加新行,我们可以使用"a"模式(追加)将其打开,然后调用该write()方法,并传递要添加的内容作为参数。这是调用该write() 方法的基本语法:

这是一个例子:

提示:请注意,我加入\n前行,以表明我希望新线显示为一个单独的行,而不是现有生产线的延续。 运行脚本后,现在是文件:

提示:在运行之前,新行可能不会显示在文件中。 f.close()

有时,你可能希望删除文件的内容,然后将其完全替换为新内容。write()如果使用"w"模式打开文件,则可以使用方法执行此操作。这里有这个文本文件:

如果我运行此脚本:

结果如下:

如你所见,使用"w"模式打开文件,然后对其进行写入将替换现有内容。 提示:该write()方法返回写入的字符数。 如果要一次写几行,则可以使用该writelines()方法,该方法需要一个字符串列表。每个字符串代表要添加到文件的一行。 这是一个例子。这是初始文件:

如果我们运行此脚本:

这些行将添加到文件末尾:

打开文件进行多种操作

现在,你知道了如何创建,读取和写入文件,但是如果您想在同一程序中做多个事情怎么办?让我们看看如果我们尝试使用到目前为止所学的模式来执行此操作,将会发生什么:

如果你以"r"模式(读取)打开文件,然后尝试对其进行写入:

你将收到此错误:

"a"(追加)模式也会发生同样的情况。我们该如何解决呢?为了能够在同一程序中读取文件并执行其他操作,需要将"+"符号添加到模式中,如下所示:

非常有用,对吧?这可能是你将在程序中使用的方式,但是请确保仅包括避免潜在错误所需的模式。有时不再需要文件。让我们看看如何使用Python删除文件。


如何删除文件

要使用Python删除文件,你需要导入名为的模块os,其中包含与操作系统交互的函数。提示:甲模块是与相关的变量,函数和类Python文件。 特别是,你需要该remove() 功能。此函数将文件路径作为参数,并自动删除文件。

让我们来看一个例子。我们要删除名为的文件sample_file.txt。

为此,我们编写以下代码:

第一行:import os称为“导入语句”。该语句写在文件的顶部,它使您可以访问os模块中定义的功能。第二行:os.remove("sample_file.txt")删除指定的文件。 提示:你可以使用绝对路径或相对路径。 现在,你知道如何删除文件,让我们来看一个有趣的工具:上下文管理器!

上下文管理器

上下文管理器是Python构造,可以使你的生活更加轻松。通过使用它们,你无需记住在程序结束时关闭文件,并且可以访问所选程序的特定部分中的文件。

句法

这是用于处理文件的上下文管理器的示例:

提示:上下文管理的身体已经被缩进,就像我们缩进循环,函数和类。如果代码没有缩进,则不会被视为上下文管理器的一部分。上下文管理器的主体完成后,文件将自动关闭。

例,这是一个例子:

该上下文管理器打开names.txt文件以进行读/写操作,并将该文件对象分配给变量f。在上下文管理器的主体中使用此变量来引用文件对象。

尝试再次阅读

正文完成后,文件将自动关闭,因此如果不重新打开文件就无法读取。可是等等!我们在下面的一行中尝试再次读取它:

让我们看看发生了什么:

引发此错误,因为我们正在尝试读取已关闭的文件。太好了吧?上下文管理器为我们完成了所有繁重的工作,它可读且简洁。

处理文件时如何处理异常

使用文件时,可能会发生错误。有时您可能没有修改或访问文件所需的权限,或者甚至可能不存在文件。作为程序员,您需要预见这些情况并在程序中进行处理,以避免突然崩溃,这肯定会影响用户体验。让我们看看使用文件时可能会发现的一些最常见的异常(运行时错误):

FileNotFoundError

根据Python文档,此异常是:在请求文件或目录但不存在时引发。 例如,如果您要打开的文件在当前工作目录中不存在:

你将看到此错误:

让我们逐行细分此错误:

File "<path>", line 8, in <module>。此行告诉你,当位于中的文件上的代码<path>运行时,引发了错误。具体来说,在line 8中执行的时间<module>。

f = open("names.txt")。这是导致错误的行。

FileNotFoundError: [Errno 2] No such file or directory: 'names.txt'。这行说发生了FileNotFoundError异常,因为文件或目录names.txt不存在。提示: Python对错误消息的描述非常正确,对吗?这是调试过程中的巨大优势。

PermissionError

这是处理文件时的另一个常见例外。根据Python文档,此异常是:尝试在没有足够访问权限的情况下运行操作时引发,例如文件系统权限。 当你尝试读取或修改没有访问权限的文件时,会引发此异常。如果尝试这样做,你将看到此错误:

IsADirectoryError

根据Python文档,此异常是:

在目录上请求文件操作时引发。

当您尝试打开目录或使用目录而不是文件时,会引发此特殊异常,因此请务必小心作为参数传递的路径。

如何处理异常

要处理这些异常,可以使用try / except语句。使用此语句,您可以“告诉”您的程序万一发生意外情况该怎么做。这是基本语法:

在这里,你可以看到一个示例FileNotFoundError:

这基本上是说:尝试打开文件names.txt。 如果FileNotFoundError抛出a,请不要崩溃!只需为用户打印描述性声明即可。

提示:你可以通过在except块中编写适当的代码来选择如何处理这种情况。也许你可以创建一个新文件(如果尚不存在)。要在任务完成后自动关闭文件(无论是否在try块中引发了异常),都可以添加该finally块。

这是一个例子:

自定义try / except / finally语句的方法有很多,甚至else只有在该try块中没有引发异常的情况下,你甚至可以添加一个块来运行代码块。

综上所述

  1. 你可以使用Python创建,读取,写入和删除文件。
  2. 文件对象具有自己的一组方法,可在程序中使用它们。
  3. 上下文管理器可帮助你处理文件并通过在任务完成后自动将其关闭来管理文件。
  4. 异常处理是Python中的关键。当你使用文件的常见异常包括FileNotFoundError,PermissionError和IsADirectoryError。可以使用try / except / else / finally处理它们。

相关推荐

win10下载应用商店(win10应用商店打不开)

1、点击Win10系统的开始菜单,然后在点击应用商店;2、打开Win10应用商店后,在搜索框里输入想要搜索的应用软件,然后点击检索;3、点击搜索到的应用,点击安装;4、点击安装后,系统会提示要切换到这...

dell电脑重装系统win10(dell 重装win10系统)

戴尔笔记本重装系统win10的步骤如下:制作好wepe启动盘之后,将win10系统iso镜像直接复制到U盘。在需要重装系统的戴尔电脑上插入pe启动盘,重启后不停按F12启动快捷键,调出启动菜单对话框,...

android升级包下载安装(android 升级包)

打开手机系统更新升级,前提是官方有新系统推送才能更新  哪个大不一定,但一般规律如下:  1、小版本的更新,通常越更新越大。比如3.1更新到3.2,通常是修复bug,代码量通常会增大,体积就会增大。 ...

hdd硬盘和ssd(ssd硬盘和hdd硬盘是什么意思)

HDD硬盘和SSD硬盘是两种不同类型的电脑存储设备,它们有着以下区别:1.工作原理:HDD硬盘使用机械旋转的磁盘和读写磁头来存储和读取数据,而SSD硬盘则使用闪存存储数据,类似于USB闪存盘。2....

电脑免费软件下载大全(电脑上免费的下载软件)

正常情况下,如果我们想要在自己的电脑上面下载一个不要钱的单机游戏,那么我们是可以直接在我们的软件管理中心进行一个下载的,这个时候我们只需要通过一个权限就能够正常的下载,当然我们也是可以在一些小游戏的软...

mpp文件转换excel(mpp转换成pdf)

要将Excel表格转换为MPP格式,您可以按照以下步骤操作:1.打开Excel表格并确保数据按照项目的不同阶段或任务进行组织。2.将Excel表格中的数据复制到一个新的MicrosoftProj...

win7旗舰版开机密码忘记按f2

方法如下:开始-控制面板-用户帐户;在打开的更改用户帐户界面点击要更改的帐户;然后点击帐户左面的更改密码按钮;在打开的页面上,输入一次当前使用的密码,输入2次要更改的新密码然后保存退出就可以了...

笔记本无音频输出设备(笔记本无音频输出设备)

1、没有声卡驱动,解决方法就是找到笔记本的官网,下载电脑声卡的驱动安装即可。2、没有外界的音频播放设备,解决方法就是买一个外界的音频播放设备插到电脑主机的音频接口上即可。笔记本电脑显示未安装任何音频输...

iso文件能用手机打开吗(iso文件能用手机打开吗安全吗)

一般的压缩软件就可以打开的,比如,好压软件,这个打开只是解压形式的,如果你说的是运行iso文件,这个没有,况且安卓系统也不支持iso运行ISO文件一般用于光盘镜像文件的存储,如果想要在手机上运行ISO...

win7系统卡顿怎么优化(win7很慢很卡怎么优化)

1、首先打开安全卫士,进入安全卫士首页,单击软件窗口右下角的“更多”图标,打开扩展应用程序。2、单击选择“我的工具”。3、在我的工具菜单里面找到“人工服务”单击打开人工服务。4、在人工服务对话框有很多...

如何查看c盘微信聊天记录(如何查看c盘微信聊天记录内存大小)

微信群中的消息只要没删除基本都能保存,想要找微信群中几个多月前的消息可以直接根据日期来查找聊天记录。操作如下:1、打开想要查找记录的微信群,点击右上角人形图标;2、点击查找聊天内容;3、选择按日...

office2016家庭版激活密钥(office家庭版激活码2019)

走淘宝吧,因为零售版的密钥只能用一次。大概几块钱就能激活2016。如果你不在乎钱的话可以向我一样,订阅一个office365.实在不行可以和几个人一起买一个家庭版的365.出现这个情况,找微软申诉是没...

移动硬盘驱动器下载安装(移动硬盘驱动器下载安装教程)

1、右键单击您的桌面,选择“新建文件夹”,并命名该文件夹(例如“usb驱动程序”);2、然后到本站下载驱动程序;3、将其解压缩至在您的桌面上刚刚创建的usb驱动程序文件夹;4、单击开始菜单,然后选择设...

电脑硬盘格式化工具(电脑 格式化硬盘)

硬盘格式化工具很多,PQMACGIG8.0(中文就叫硬盘分区魔法师)是比较好的一个,这个是在WINDOWS下比叫好用,(个人感觉)FDISK也是比较好的一个,这个一般用在DOS下分区格式化WIN...

photoshop是一款什么软件(ps指的是什么软件)

这个说法是错误的,ps软件“即:photoshop”是由美国著名的“adobe阿多比”公司出品的专业的图像处理软件,它不是由微软公司出品的软件。众所周知的是,微软公司以设计视窗操作系统名满全球,它出...

取消回复欢迎 发表评论: