前言:
今天小伙伴们对“读取代码意思”可能比较关切,各位老铁们都想要知道一些“读取代码意思”的相关内容。那么小编同时在网摘上网罗了一些对于“读取代码意思””的相关知识,希望大家能喜欢,同学们一起来学习一下吧!使用Python处理文件
数据的存储可以使用数据库,也可以使用文件。数据库保持了数据的完整性和关联性,而且使数据更安全、可靠。使用文件存储数据则非常简单、易用,不必安装数据库管理系统等运行环境。文件通常用于存储应用软件的参数或临时性数据。Python的文件操作和Java的文件操作十分相似,Python提供了os、os.path等模块处理文件。
文件的常见操作
文件通常用于存储数据或应用系统的参数。Python提供了os、os.path、shutil等模块处理文件,其中包括打开文件、读写文件、复制和删除文件等函数。
文件的创建
Python3中移除了全局的file()函数,还保留了open()函数。文件的打开或创建可以使用函数open()。该函数可以指定处理模式,设置打开的文件为只读、只写或可读写状态。open()的声明如下所示。
open(file, mode='r', buffering=-1, encoding=None,
errors=None, newline=None, closefd=True, opener=None) -> file object
【代码说明】
参数file是被打开的文件名称。如果文件file不存在,open()将创建名为name的文件,然后再打开该文件。
参数mode是指文件的打开模式。文件的打开模式如表7-1所示。
参数buffering设置缓存模式。0表示不缓存;1表示行缓冲;如果大于1则表示缓冲区的大小,以字节为单位。
open()返回1个file对象,file对象可以对文件进行各种操作。
注意 对于图片、视频等文件必须使用“b”的模式读写。
file类用于文件管理,可以对文件进行创建、打开、读写、关闭等操作。file类的常用属性和方法如下表:
文件的处理一般分为以下3个步骤:
1)创建并打开文件,使用file()函数返回1个file对象。
2)调用file对象的read()、write()等方法处理文件。
3)调用close()关闭文件,释放file对象占用的资源。
注意 close()方法是必要的。虽然Python提供了垃圾回收机制,清理不再使用的对象,但是手动释放不再需要的资源是一种良好的习惯。同时也显式地告诉Python的垃圾回收器:该对象需要被清除。
下面这段代码演示了文件的创建、写入和关闭操作。
# 创建文件
context = '''hello world'''
file = open('hello.txt', 'w') # 打开文件
file.write(context) # 把字符串写入文件
file.close() # 关闭文件
【代码说明】
第3行代码调用open()创建文件hello.txt,设置文件的访问模式为“w”。open()返回文件对象f。
第4行代码把变量context的值写入文件hello.txt。
第5行代码调用对象f的close()方法,释放对象f占用的资源。
文件的读取
文件的读取有多种方法,可以使用readline()、readlines()或read()函数读取文件。下面将一一介绍这些函数读取文件的实现方法。
1.按行读取方式readline()
readline()每次读取文件中的一行,需要使用永真表达式循环读取文件。但当文件指针移动到文件的末尾时,依然使用readline()读取文件将出现错误。因此程序中需要添加1个判断语句,判断文件指针是否移动到文件的尾部,并且通过该语句中断循环。
下面这段代码演示了readline()的使用。
编辑测试文件为:
# cat hello.txt
hello world
hello China
# 使用readline()读文件
f = open('hello.txt')
while True:
line0 = f.readline(2)
if line0:
print(line0)
else:
break
f.close()
print('---------------------------')
print('由于hello.txt刚才被打开读取完成,所以这里需要重新打开文件,重头读取文件。')
print('---------------------------')
f = open('hello.txt')
while True:
line1 = f.readline()
if line1:
print(line1)
else:
break
f.close()
【代码说明】
第3行代码使用了“Ture”作为循环条件,构成1个永真循环。
第4行代码并不表示每行只读取2个字节的内容,而是指每行每次读2个字节,直到行的末尾。
第18行代码调用readline(),读取hello.txt文件的每一行。
第19行代码,判断变量line是否为真。如果为真,则输出当前行的内容;否则,退出循环。
2.多行读取方式readlines()
使用readlines()读取文件,需要通过循环访问readlines()返回列表中的元素。
函数readlines()可一次性读取文件中多行数据。
下面这段代码演示了readlines()读取文件的方法:
# 使用readlines()读文件
f = open('hello.txt')
lines = f.readlines()
for line in lines:
print(line)
f.close()
【代码说明】
第3行代码调用readlines(),把文件hello.txt中所有的内容存储在列表lines中。
第4行代码循环读取列表lines中的内容。
第5行代码输出列表lines每个元素的内容,即文件hello.txt每行的内容。
第6行代码手动关闭文件。
3.一次性读取方式read()
读取文件最简单的方法是使用read(),read()将从文件中一次性读出所有内容,并赋值给1个字符串变量。
下面这段代码演示了read()读取文件的方法:
# 使用read()读文件
f = open("hello.txt")
context = f.read()
print(context)
f.close()
【代码说明】
第3行代码调用read(),把文件hello.txt中所有的内容存储在变量context中。
第4行代码输出所有文件内容。
可以通过控制read()参数的值,返回指定字节的内容。
f = open('hello.txt')
context = f.read(5) # 读取文件前5个字节的内容
print(context)
print(f.tell()) # 返回文件对象当前指针位置
context = f.read(5) # 继续读取5个字节内容
print(context)
print(f.tell())
f.close()
【代码说明】
第2行代码调用read(5),读取hello.txt文件中前5个字节的内容,并存储到变量context中。此时文件的指针移到第5个字节处。
第3行代码输出变量context的结果,输出的结果为“hello”。
第4行代码调用tell(),输出当前文件指针的位置:5。
第5行代码再次调用read(5),读取第6个字节到第10个字节的内容。
第6行代码输出结果为“worl”。
第7行代码输出当前文件指针的位置:10。
注意 file对象内部将记录文件指针的位置,以便下次操作。只要file对象没有执行close()方法,文件指针就不会释放。
标签: #读取代码意思