Python处理文件的几个常用小知识
python这门语言有个很大的用途就是使用它来进行文件处理,学会处理文件和保存数据可以让你的程序使用起来更加容易和方便,因此小编为大家准备了几个处理文件常用的几个小知识,快来一起学习吧!
1、读取文件数据
文本文件可存储的数据量非常丰富,像天气数据、交通数据、文学作品等。每当我们需要分析或修改储存在文件中的信息时,读取文件就显得尤为重要。想读取一个文件的信息,我们可以一次性读取全部内容,也可以每次一行逐步读取。
读取整个文件
我们先来创建一个包含几行文本的文件,在编辑器中输入以下数据行,保存为txt格式:
pi.txt:
3.1415926535
8979323846
2643383279
打开并读取该文件:
withopen('pi.txt')asfile:
contents=file.read()
print(contents)
在这行程序中,出现了两个函数open()和read()。
函数open()用于打开一个文件,它接受的参数是要打开文件的名称,Python会在当前执行的文件目录中查找指定的文件,然后返回一个表示文件的对象。
方法read()用于读取这个文件的全部内容,并将其作为一个长长的字符串储存在变量contents中。但这段程序的运行结果大家可以尝试一下,它会把这个文本的内容全部输出并在最后多出一行空行,这是因为read()到达文件末尾时会返回一个空字符串,显示在结果就是一个空行。如果想要删除末尾的空行,可以在print中使用rstrip():
print(contents.rstrip())
关于文件路径,我们需要注意的是,Linux系统和windows有一点不同:
在Linux和OSX中(使用斜杠/):
withopen('files/filename.txt')asfile_object:
在Windows中(使用反斜杠\):
withopen('files\filename.txt')asfile_object:
逐行读取
如果想每次一行的读取文件,可对文件对象使用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.141592653589793238462643383279
2、写入文件
写入空文件
将文本写入文件,可以在调用open()时提供另一个实参。即打开文件时,可以指定需要的模式:'r'读取模式,'w'写入模式,'a'附加模式,'r+'读取和写入模式。python默认只读模式。
withopen(filename,'w')asfile:
file.write("abcdefg")
注意:python只能将字符串写入文本文件,如果想把数值数据储存到文本文件,必须先使用函数str()将其转为字符串格式。
写入多行
withopen(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文件中的信息。
importjson
num=[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
#如果以前储存了用户名就加载它,否则,就提示用户输入名字并存储
filename='name.json'
try:
withopen(filename)asf:
username=json.load(f)
exceptFileNotFoundError:
name=input("你叫什么名字?")
withopen(filename,'w')asf:
json.dump(name,f)
print("我们会记住你的,"+name+"!")
else:
print("欢迎回来,"+name+"!")
以上内容为大家介绍了Python处理文件的几个常用小知识,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/
猜你喜欢LIKE
相关推荐HOT
更多>>python中的filter函数功能是什么?
python中的filter函数功能是什么?在python中,面对众多的数据,我们要过滤筛选出我们需要的数据。python中的filter函数就是起到了过滤筛选的作...详情>>
2023-11-10 20:37:27pythontime模块是什么
pythontime模块是什么在python中使用时间,就免不了和time模块打交道,另外两个模块这个暂时先不做介绍。做time模块的使用上,我们可以用它来对...详情>>
2023-11-10 15:53:16python是什么编程语言
python是什么编程语言1、说明是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Pyt...详情>>
2023-11-10 15:21:05python异常处理的两种技巧
python异常处理的两种技巧1、传递异常有时我们会在捕捉到一个异常后重新引发它(传递异常),实现起来很简单,使用不带参数的raise语句即可。deff...详情>>
2023-11-10 14:49:39热门推荐
python中的filter函数功能是什么?
沸python delattr函数如何使用?
热python中pdb模块怎么用?
热Python如何截图保存?
新python中缺少module怎么办?
python strftime和strptime的不同分析
python time.strptime的格式化
python中@contextmanager是什么?
python对象的三要素是什么
pythonGIL在Python多线程的应用
python如何对多个CSV文件进行读取
pythonif嵌套命令如何理解?
python对列表进行永久性或临时排序的方法
python生成器调用方法引发异常