用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
参数,文件就会以只读方式打开,如下所示,列出了常用的几种打开模式。
其中,mode='r'
表示制度;mode='w'
表示只写;mode='a'
表示追加。mode='r+'
表示可读写,但是文件必须存在,否则报错。
一个简单的示例
在下面的代码示例中使用open()
代开一个文件,此处假设文件与Python脚本在同一个目录中,否则要增加路径。
exfile = open('example_file')
print(exfile)
在上图中,很明显我们有一个以只读模式打开的文件对象,在open()
中除了文件名之外没有任何其他参数。因此,无法向该文件写入任何内容。如果要打印文件名,只需键入print(exfile.name)
。
创建文本文件并写入内容
下面使用open()
创建一个新文件。现在,要使用mode='w'
参数,这样能够打开一个文件对象,并可以使用“文件对象写入”方法。
exfile = open('example_file2', 'w')
print(exfile)
在上图中,可以当前文件对象是写入模式(‘ w ‘),在下面的代码块中,我们将向这个文件中添加一行文本:
exfile.write('This is example file 2 \n')
当然,也可以添加更多的行:
exfile.write('Line number 2, in example file 2')
exfile.close()
注意,在最后一行务必要使用close()
关闭文件。在下图中,我们可以看到用Python创建的示例文件。
如何使用open()读取Python中的文本文件
在下一个用Python读取文件的示例中,我们将学习如何在Python中打开文本文件(.txt)。当然,这很简单,我们基本上已经掌握了如何使用Python实现这一目的。也就是说,如果我们只想在Python中读取.txt文件,我们可以使用open函数和read模式:
txtfile = open('example_file.txt')
read()示例
这个操作很简单。现在,如果我们想打印文本文件的内容,可以有三个方法。第一个,使用文件对象的read()
方法,读取整个文件内容。也就是说,用txtfile.read()
可以得到以下输出:
第二个是用readlines()
将文件读取到列表中:
txtfile = open('example_file.txt')
print(txtfile.readlines())
在这个方法中,还可以使用通过提供参数,说明读取某些行。例如,下面的代码将把前两行读入,然后将其打印出来:
txtfile = open('example_file.txt')
line = txtfile.readlines(1)
print(line)line2 = txtfile.readlines(2)
print(line2)
最后一个方法,通过循环方式,把文件的内容逐行打印出来:
txtfile = open('example_file.txt')
for line in txtfile:print(line)
写入文件内容
在示例中,打开一个.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)打开文本文件,会看到添加的最后两行:
使用with语句
使用with语句打开文件是一个非常好的习惯,这样就不必记住关闭文件,并且使用with语句的语法清晰易读:
with open('example_file2.txt') as txtfile2:print(txtfile2.read())
现在,如果我们使用read()
方法,Python会抛出ValueError:
txtfile2.read()
分词和统计
在读取文件后,可以使用字符串的split()
方法将文本文件中的句子分割成单词,然后用collections模块中的Counter
类来统计打开的文件中的单词数量。
from collections import Counterwith 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语句读取文件。
欢迎你的到来。
用Python读写文件的方法相关推荐
- 八、Python读写文件的方法
Python读写文件的方法 读取文件的对象:fin = open("data.txt") 写出文件的对象:fout = open("data.txt",&quo ...
- python的文件读写方法有哪些_python读写文件的方法有哪些
python读写文件的方法有哪些 发布时间:2020-08-07 11:58:05 来源:亿速云 阅读:87 作者:小新 这篇文章主要介绍python读写文件的方法有哪些,文中介绍的非常详细,具有一定 ...
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- python写文件读文件-Python 读写文件和file对象的方法(推荐)
1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...
- python文件读取输出-Python 读写文件中数据
1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...
- python读写文件实例_python读写文件的简单示例
这篇文章主要为大家详细介绍了python读写文件的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 首先看一个例子: # 来自www.512 ...
- python 读写文件 另存为_python读写文件(五)
今天继续分享python读写文件. 首先介绍一个新的函数open(),这个函数是干什么的呢?在python里面可以用open函数来打开文件.要用open函数打开一个文件,就是要向它传递一个字符串路径, ...
- python读写文件的语句_用Python读写文件指南
用Python读写文件(指南) [TOC] 使用Python最常见的任务之一是读取和写入文件.无论是写入简单的文本文件,读取复杂的服务器日志,甚至是分析原始字节数据,所有这些情况都需要读取或写入文件. ...
- python读写文件详解,将数据写入一个文件或读一个文件写入另一个文件中。
目录 实践一:读取文件并打印,read() 实践二:读取文件的一行并打印,readline() 实践三:读取文件的所有行存入到一个列表中并打印,readlines() 实践四:向文件中写入字符串,wr ...
最新文章
- java 两个值对换_java将两个整型变量值进行互换的几种实现方法
- HashMap putIfAbsent computeIfAbsent 使用方法
- redis hash key mysql_Linux取得Redis数据库中hash类型的所有feild或者所有value
- java 增量,Java增量运算符查询(++ i和i ++)
- MyBatisEhcache二级缓存的开启
- html4符合web的标准吗,在生成HTML,表格等时,CakePhp是否“符合标准”?
- 泉州中考分数如何计算机,2019年泉州中考总分多少分,泉州中考考试科目设置
- reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式
- python开发飞船游戏
- 华为交换机基本配置命令详解
- java使用百度翻译接口实现前后端翻译功能
- 如何构建GCC交叉编译器
- IP地址规划设计技术
- Spring和MyBatis框架整合的小案例
- web前端_腾讯校招一面
- 【公开课报名】腾讯产品经理教你如何用好腾讯会议
- Kafka相关配置,canal检测数据发送kafka同步数据到ES
- 七.面向对象编程(中)
- 王者荣耀刷金币辅助(安卓调试桥与python的联合使用)
- 收藏||二叉树的遍历:颜色标记法(前序、中序、后序通用)
热门文章
- 缓存之redis面试题
- 赛盈分销平台福利来啦:春夏款雨篷8折起,新客返券25%
- 唤醒屏幕缓慢的解决方法
- 荣耀magic5和magic5pro区别 荣耀magic5和magic5pro参数对比
- 论2005年手机游戏产业的快速膨胀
- 华为鸿蒙新款手机,“怪兽”鸿蒙真的就快来了!华为本周将发布P50等HarmonyOS新品...
- T31快启图像效果优化
- Rest Framework:五、不存数据库认证以及自定义 ,内置频率控制类的使用,解析器...
- 通过Echarts怎样实现立体柱状图
- Github+jekyll搭建个人博客