当前位置: 首页 > 科技观察

Python处理文件的几个常识

时间:2023-03-12 22:57:32 科技观察

Python处理文件的几个常识使用起来更简单方便,所以小编为大家准备了几个处理文件的常识,快来一起学习吧!1、读取文件数据文本文件可以存储的数据量非常丰富,比如天气数据、路况数据、文学作品等,每当我们需要分析或修改其中存储的信息时,读取??文件就显得尤为重要。读取一个文件的信息,我们可以一次性读取所有内容,也可以一行一行地逐行读取。读取整个文件我们先创建一个包含几行文本的文件,在编辑器中输入以下数据行,并以txt格式保存:pi.txt:3.141592653589793238462643383279打开并读取文件:withopen('pi.txt')asfile:contents=file.read()print(contents)在这行程序中,有两个函数open()和read()。函数open()用于打开一个文件。它接受的参数是要打开的文件的名称。Python会在当前执行的文件目录中搜索指定的文件,然后返回一个代表该文件的对象。方法read()用于读取该文件的全部内容并将其作为长字符串存储在变量内容中。不过你可以试试这个程序的运行结果。它将输出这段文本的所有内容,并在末尾添加一个空行。这是因为read()在到达文件末尾时会返回一个空字符串,结果中显示的只是一个空行。如果要删除最后的空行,可以在print中使用rstrip():print(contents.rstrip())关于文件路径,需要注意linux系统和windows的区别:在Linux和OSX(使用斜杠/):withopen('files/filename.txt')asfile_object:在Windows中(使用反斜杠\):withopen('files\filename.txt')asfile_object:如果需要,逐行读取time一行读取一个文件,可以在文件对象上使用for循环:filename='pi.txt'withopen(filename)asfile:forlineinfile:print(line)同样,为了删除多余的空行在每行,我们可以使用rstrip():filename='pi.txt'withopen(filename)asfile:forlineinfile:print(line.rstrip())创建一个包含文件每一行内容的列表当使用with时,open()返回的文件对象只能在块内使用的with代码中使用。如果我们想访问代码块外的文件内容,我们可以在with代码块内将文件的每一行存储在一个列表中,在with代码块外使用列表访问。filename='pi.txt'withopen(filename)asfile:lines=file.readlines()forlineinlines:print(line.rstrip())方法readlines()表示从文件中读取每一行并将其存储在列表中间。使用文件内容filename='pi.txt'withopen(filename)asfile:lines=file.readlines()ss=''forlineinlines:ss+=line.strip()print(ss)这段程序的结果是:3.1415926535897932384626433832792,写FILEWRITENULLFILE将文本写入文件,调用open()时可以提供另一个参数。即打开文件时,可以指定需要的模式:'r'读模式、'w'写模式、'a'追加模式、'r+'读写模式。Python默认为只读模式。withopen(filename,'w')asfile:file.write("abcdefg")注意:Python只能将字符串写入文本文件。如果要在文本文件中存储数值数据,必须先使用函数str()将其转换为字符串格式。用open(filename,'w')asfile:file.write("abcdefg\n")file.write("hijklmn\n")写多行来存储数据Python经常使用json来存储数据。json可以将简单的python数据结构转储到文件中,并在程序再次运行时从该文件加载数据。JSON数据格式并不是python独有的,是一种常用的数据格式,好用又简单易学。json.dump()和json.load()两个函数分别用于存储数据和加载数据。json.dump()有两个参数:要存储的数据和要存储数据的文件对象。json.load()用于加载存储在json文件中的信息。importjsonnum=[1,2,3,4,5]filename='a.json'withopen(filename,'w')asf:json.dump(num,f)withopen(filename)asf:num=json.load(f)print(num)这是在程序之间共享数据的简单方法。实现一个小功能下面的程序可以实现一个我们在游戏开始时经常遇到的小功能,一起来试试吧!importjson#如果之前保存过用户名,则加载,否则提示用户输入名称并保存文件名='name.json'try:withopen(filename)asf:username=json.load(f)exceptFileNotFoundError:name=input("What'syourname?")withopen(filename,'w')asf:json.dump(name,f)print("我们会记住你的,"+name+"!")else:print("Welcome返回,“+姓名+”!)