本篇内容主要讲解“Python文件处理方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python文件处理方法有哪些”吧!
# 打开example.txt文件,并返回文件对象filewith open('example.txt') as file:# 通过read()读取文件的全部内容,并将其作为一个字符串存储在all_contents中all_contents = file.read()# 显示全部内容print(all_contents)
执行该程序后,输出example.txt文件中的全部内容:
君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
with open('example.txt') as file:# 遍历文件中的每一行for line in file:print(line)
执行该程序后,逐行输出example.txt文件中的每一行内容:
君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
容易发现,输出每一行内容后,都多了一个空行。 这是因为每行的末尾都有一个看不见的换行符,而 print 语句也会加上一个换行符,因此每行末尾都有两个换行符:一个来自文件,另一个来自 print 语句。要消除这些多余的空白行,可在 print 语句中使用 rstrip() :
print(line.rstrip())
使用关键字 with 时, open() 返回的文件对象只在 with 代码块内可用。如果要在 with 代码块外访问文件的内容,可在 with 代码块内将文件的各行存储在一个列表中,并在 with 代码块外使用该列表:你可以立即处理文件的各个部分,也可推迟到程序后面再处理。
下面的示例在 with 结构中将文件 example.txt 的各行存储在一个列表中,再在 with 代码块外打印它们:
with open("example.txt") as file:# 从文件中读取每一行,并将其存储在一个列表lines中lines = file.readlines()# 逐行打印内容for line in lines:print(line.rstrip())
执行该程序后,逐行输出example.txt文件中的每一行内容:
君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
在前面的示例中,我们使用的open()其实包含两个参数:
第一个参数filename。表示到打开或者写入的文件名;
第二个参数mode。模式有三种选择:读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’)。如果你省略了模式实参, Python 将以默认的只读模式打开文件。
要将文本写入文件,你在调用 open() 时需要提供另一个实参——写入模式(‘w’),告诉 Python 你要写入打开的文件。为明白其中的工作原理,我们来将一条简单的消息存储到文件中:
# 以写入模式打开文件with open("writeFile.txt", "w") as file:# write()将一个字符串写入文件file.write("I Love Python!")
执行后,可以发现在你的工程目录下产生了一个新的文件writeFile.txt,该文件中的内容是:I Love Python!
注意:Python 只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数 str() 将其转换为字符串格式。
函数 write() 不会在你写入的文本末尾添加换行符,因此你可以在写入时指定换行符:
# 以写入模式打开文件with open("writeFile.txt", "w") as file:# write()将一个字符串写入文件,并换行file.write("I Love Python!\n")file.write("AI Jun Love Python too!\n")
执行后,可以发现生成的新文件writeFile.txt中有两行内容:
I Love Python! AI Jun Love Python too!
注意:如果在工程目录下已有writeFile.txt文件,则新写入的内容会覆盖原来的所有内容。
如果你要给文件添加内容,而不是覆盖原有的内容,可以 附加模式 打开文件。你以附加模式打开文件时, Python 不会在返回文件对象前清空文件,而你写入到文件的行都将添加到文件末尾。如果指定的文件不存在, Python 将为你创建一个空文件。
接下来,在既有文件 writeFile.txt 中再添加一些新的内容:
with open("writeFile.txt", "a") as file:# 在原来writeFile.txt文件中新添内容file.write("I Love Python beacause it can work well!")
执行后,在原内容中新增了一行:
I Love Python! AI Jun Love Python too! I Love Python beacause it can work well!
模块 json 让你能够将简单的 Python 数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以使用 json 在 Python 程序之间分享数据。更重要的是, JSON 数据格式并非 Python 专用的,这让你能够将以 JSON 格式存储的数据与使用其他编程语言的人分享。这是一种轻便格式,很有用,也易于学习。
JSON ( JavaScript Object Notation )格式最初是为 JavaScript 开发的,但随后成了一种常见格式,被包括 Python 在内的众多语言采用。
使用 json.dump() 将数据存储到JSON文件中:
# 导入模块 jsonimport json# 新建一个列表numbers = [1,2,3,4,5]# 以写入模式打开这个文件new.jsonwith open("new.json", "w") as file:# 使用json.dump()将数字列表存储到文件中json.dump(numbers, file)
执行后,在工程目录下生成一个新的文件new.json,文件中存储着新添的数据:[1, 2, 3, 4, 5]
注:json是Python中的内置模块,在编写相关程序时,可以直接使用import导入,不需要额外的安装json库。
以写入模式打开文件,写入的内容会覆盖原来文件中的内容。有时希望在源文件中添加新的内容,这时就必须以附加模式打开文件,如下所示:
# 导入模块 jsonimport json# 新建一个列表list = [6, 7, 8, 9, 10]# 以附加模式打开这个文件new.jsonwith open("new.json", "a") as file:# 使用json.dump()将数字列表存储到文件中json.dump(list, file)
执行完后,程序在原来的new.json文件中新添了内容:[6, 7, 8, 9, 10]
接下来,使用函数 json.load() 将JSON文件中的列表读取到内存中:
# 导入模块 jsonimport json# 以只读模式打开这个文件new.jsonwith open("new.json", "r") as file:# 使用json.load()将JSON文件中的内容读取到内存list = json.load(file)print("JSON文件中存储的内容是:", list)
运行结果:
JSON文件中存储的内容是: [1, 2, 3, 4, 5]
到此,相信大家对“Python文件处理方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。