用Python读写文件的方法

用Python读写文件的方法在文中 我们将研习如何用 Python 读取文件 然后 向文件写入内容并再次保存它 使用 Python 读写某种特别类型的文件 例如 JSON CSV Excel 等 一般会有专门的模块 但是 在这里 我们将用 Python 打开文本文件 txt 若使用 Python 的 open 函数 它将返回一个文件对象 此对象将包含一些方法和属性 我们可以使用这些方法和属性获得已打开文件的相关信息 并且 可以使用这些方法来更改所打开的文件 用 open 读取文件在本节中 我们将学习如何使用 open 函数在 Python 中加载文

在文中,我们将研习如何用Python读取文件,然后,向文件写入内容并再次保存它。使用Python读写某种特别类型的文件,例如:JSON、CSV、Excel等,一般会有专门的模块。但是,在这里,我们将用Python打开文本文件(.txt)。

若使用Python的open函数,它将返回一个文件对象,此对象将包含一些方法和属性。我们可以使用这些方法和属性获得已打开文件的相关信息,并且,可以使用这些方法来更改所打开的文件。

open()读取文件

在本节中,我们将学习如何使用open()函数在Python中加载文件,最简单的例子是打开一个文件并创建一个文件对象。

当使用Python的open()函数打开一个文件时,有若干个参数可用。然而,最常用的参数只有前两个。注意,第一个是强制性的,其余的是可选的。如果不添加mode参数,文件将在Python中以只读模式打开。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 

mode参数

读取文件有不同模式。如前所述,如果不带有mode参数,文件就会以只读方式打开,如下所示,列出了常用的几种打开模式。

用Python读写文件的方法

其中,mode='r'表示制度;mode='w'表示只写;mode='a'表示追加。mode='r+'表示可读写,但是文件必须存在,否则报错。

一个简单的示例

在下面的代码示例中使用open()代开一个文件,此处假设文件与Python脚本在同一个目录中,否则要增加路径。

exfile = open('example_file') print(exfile) 

用Python读写文件的方法

在上图中,很明显我们有一个以只读模式打开的文件对象,在open()中除了文件名之外没有任何其他参数。因此,无法向该文件写入任何内容。如果要打印文件名,只需键入print(exfile.name)

创建文本文件并写入内容

下面使用open()创建一个新文件。现在,要使用mode='w'参数,这样能够打开一个文件对象,并可以使用“文件对象写入”方法。

exfile = open('example_file2', 'w') print(exfile) 

用Python读写文件的方法

在上图中,可以当前文件对象是写入模式(’ w ‘),在下面的代码块中,我们将向这个文件中添加一行文本:

exfile.write('This is example file 2 \n') 

当然,也可以添加更多的行:

exfile.write('Line number 2, in example file 2') exfile.close() 

注意,在最后一行务必要使用close() 关闭文件。在下图中,我们可以看到用Python创建的示例文件。

用Python读写文件的方法

如何使用open()读取Python中的文本文件

在下一个用Python读取文件的示例中,我们将学习如何在Python中打开文本文件(.txt)。当然,这很简单,我们基本上已经掌握了如何使用Python实现这一目的。也就是说,如果我们只想在Python中读取.txt文件,我们可以使用open函数和read模式:

txtfile = open('example_file.txt') 

read()示例

这个操作很简单。现在,如果我们想打印文本文件的内容,可以有三个方法。第一个,使用文件对象的read()方法,读取整个文件内容。也就是说,用txtfile.read()可以得到以下输出:

用Python读写文件的方法

第二个是用readlines()将文件读取到列表中:

txtfile = open('example_file.txt') print(txtfile.readlines()) 

用Python读写文件的方法

在这个方法中,还可以使用通过提供参数,说明读取某些行。例如,下面的代码将把前两行读入,然后将其打印出来:

txtfile = open('example_file.txt') line = txtfile.readlines(1) print(line) line2 = txtfile.readlines(2) print(line2) 

用Python读写文件的方法

最后一个方法,通过循环方式,把文件的内容逐行打印出来:

txtfile = open('example_file.txt') for line in txtfile: print(line) 

用Python读写文件的方法

写入文件内容

在示例中,打开一个.txt文件,并向其中以追加的方式增加内容,故需要用'a'模式打开。

open('example_file2.txt', 'a') 

接下来,使用write()向其追加内容。

txtfile.write('\n More text here.') 

在添加文本时,至少在Windows 10中,必须在行前添加\n。否则,新的一行将添加到最后一个字符的后面(在文件的最后一行)。如果我们要添加更多的行,也必须记住这样操作;

txtfile.write(‘\nLast line of text, I promise.) txtfile.close() 

可以使用文本编辑器(例如,Notepad, Gedit)打开文本文件,会看到添加的最后两行:

用Python读写文件的方法

使用with语句

使用with语句打开文件是一个非常好的习惯,这样就不必记住关闭文件,并且使用with语句的语法清晰易读:

with open('example_file2.txt') as txtfile2: print(txtfile2.read()) 

用Python读写文件的方法

现在,如果我们使用read()方法,Python会抛出ValueError:

txtfile2.read() 

用Python读写文件的方法

分词和统计

在读取文件后,可以使用字符串的split()方法将文本文件中的句子分割成单词,然后用collections模块中的Counter类来统计打开的文件中的单词数量。

from collections import Counter with open('example_file2.txt') as txtfile2: wordcount = Counter(txtfile2.read().split()) print(len(wordcount)) # Output: 43 

现在,Counter类返回了一个字典,该字典包含所有单词和每个单词出现的次数。因此,可以这样来打印所有单词和单词总数:

for k in sorted(wordcount, key=wordcount.get, reverse=True): print(k, wordcount[k]) 

在上面的代码示例中,我们循环遍历字典中的键并对它们进行排序。这样,就把最常见的词排在最上面。当然,如果用Python读取包含多个单词的文件、并像这样打印结果,这种操作就是不可行的。

以上介绍了以不同的模式读取文件、创建和写入文件、将数据追加到文件的方法,以及如何使用with语句读取文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225483.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:14
下一篇 2026年3月17日 上午9:14


相关推荐

  • 土法炼钢_百度百科[通俗易懂]

    土法炼钢_百度百科[通俗易懂]土法炼钢_百度百科土法炼钢

    2022年8月5日
    9
  • AdventureWorks2008 数据库安装

    AdventureWorks2008 数据库安装我使用的操作系统是win8.1,由于对早前安装的sqlserver2008的兼容性不太好,要安装对应的servicepack来解决一下这个问题。如何使用SQLServer在Windo

    2022年7月3日
    27
  • Mapper.xml中的useGeneratedKeys[通俗易懂]

    Mapper.xml中的useGeneratedKeys[通俗易懂]mapper.xml中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名.例:<insertid="insertSelective"parameterType="com.xxx.StudentMistakeKpoints"useGeneratedKeys="true"keyProperty="id">…

    2022年6月24日
    43
  • cscript 执行代码_在Windows上执行恶意代码 by cscript&mshta

    cscript 执行代码_在Windows上执行恶意代码 by cscript&mshtaWindows 自带的可执行文件 合理构造的 payload 脚本 获得会话 cscript 简介在 cscript exe 来寻找和连接脚本的运行库 最常见的有 VBScript 和 JavaScript WSH 环境包括两个脚本宿主 基于控制台的 CScript 和基于 GUI 的 WScript 这两个脚本宿主提供几乎相同的功能 在大多数情况下 使用哪个脚本宿主来运行脚本并不重要 两个例外在于您如何与脚本交互 也就是说

    2026年3月17日
    2
  • 双向可控硅原理图

    双向可控硅原理图双向可控硅是一种以硅单晶为基本材料的 P1N1P2N2 四层三端器件 是在普通可控硅的基础上发展而成的交流开关器件 其英文名称 TRIAC 即三端双向交流开关之意 发明于 1957 年 双向可控硅为单向导电性开关 能代替两只反极性并联的可控硅 而且仅需一个触发电路 可控硅具有导通和关断两种状态 从外形上区分主要有 螺栓形 平板形和平底形三类 本文引用地址 http www eepw com cn ar

    2026年3月18日
    3
  • matlab中imfilter函数是什么意思_matlab中bwlabel函数

    matlab中imfilter函数是什么意思_matlab中bwlabel函数Matlab函数imfill简介函数功能:该函数用于填充图像区域和“空洞”。语法格式:BW2=imfill(BW)这种格式将一张二值图像显示在屏幕上,允许用户使用鼠标在图像上点几个点,这几个点围成的区域即要填充的区域。要以这种交互方式操作,BW必须是一个二维的图像。用户可以通过按Backspace键或者Delete键来取消之前选择的区域;通过shift+鼠标左键单击或者鼠…

    2025年11月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号