旅游网站建设公司,事业部网站建设方案,湖北企业网站建设多少钱,一个网站完整的html代码概述 在上一节#xff0c;我们介绍了Python的推导式#xff0c;包括#xff1a;列表推导式、元组推导式、集合推导式、字典推导式、条件推导式等内容。在这一节中#xff0c;我们将介绍Python的文件操作。Python是一种高级编程语言#xff0c;它提供了许多内置函数和模块来…概述 在上一节我们介绍了Python的推导式包括列表推导式、元组推导式、集合推导式、字典推导式、条件推导式等内容。在这一节中我们将介绍Python的文件操作。Python是一种高级编程语言它提供了许多内置函数和模块来处理文件操作主要包括打开文件、读取文件、写入文件、关闭文件、获取目录列表等。 打开文件 在Python中可以使用open()函数来打开一个文件。该函数通常接受两个参数文件路径和打开模式。 打开文件的常见模式有如下几种 r只读模式。 w写入模式。如果文件存在将其截断为空文件如果文件不存在则创建一个新文件。 a追加模式。如果文件存在将新数据追加到文件的末尾如果文件不存在则创建一个新文件。 x创建模式。创建一个新文件如果文件已存在则失败。 t文本模式不指定模式时的默认值。 b二进制模式。使用带有b标记的打开模式比如rb、wb可以以二进制模式读取和写入文件这在处理图像、视频、音频和其他非文本文件时很有用。
# 打开名为text.txt的文件以进行读取
file open(text.txt, r) 读取文件 打开文件后可以使用read()函数来读取文件的内容。该函数接受一个可选参数表示要读取的最大字符数。另外还可以使用readline()函数一次读取一行使用readlines()函数一次读取所有行并返回一个列表。
# 打开名为text.txt的文件以进行读取
file open(text.txt, r)
# 读取整个文件内容
content file.read()
# 最多读取100个字符
content file.read(100)
# 读取一行内容
content file.readline()
# 读取所有行内容并返回一个列表
content file.readlines()
# 使用完需要关闭文件
file.close() 写入文件 要向文件中写入内容可以使用write()函数。该函数接受一个字符串参数表示要写入的内容。也可以使用writelines()函数该函数接受一个字符串序列但不会自动添加换行符需要手动添加。
# 打开名为text.txt的文件以进行读取
file open(text.txt, w)
# 写入字符串内容
file.write(hello CSDN\n)
# 写入列表writelines不会自动添加换行符需要手动添加
lines [first line, second line, third line]
file.writelines(\n.join(lines))
file.close() 关闭文件 使用完文件后应记得使用close()函数来关闭文件。这是一个良好的编程习惯因为它可以释放占用的系统资源并避免出现异常或错误。 实际上上述几个示例代码都不够完善因为open()函数在失败时会抛出OSError异常。比较规范的写法可以参考下面的示例代码。
file None
try:file open(text.txt, r)print(file.readline())
except OSError as error:print(error)
finally:if file:file.close() 但如果每次读写文件时都这样编码太繁琐了。因此Python提供了with语句。with语句用于处理文件对象以确保文件在使用后被正确地关闭。这是一种处理文件的推荐方式因为它可以自动管理文件的打开和关闭从而避免资源泄漏。 当你使用with语句处理文件时Python会在代码块结束时自动关闭文件无论中间是否发生异常。这使得代码更加简洁和安全因为你不必担心忘记关闭文件。
try:with open(text.txt, r) as file:content file.read()print(content)
except:print(open exception) 在上面的示例代码中我们使用open()函数打开了一个名为text.txt的文件并将其赋值给变量file。然后使用with语句将文件包裹起来。在with代码块中我们读取了文件的内容并将其存储在变量content中然后打印出来。当代码块结束时Python会自动关闭文件无论中间是否发生异常。 另外还可以使用with语句来处理其他类型的资源比如网络连接、线程锁等。这种自动管理资源的方式可以确保资源在使用后被正确地释放从而避免资源泄漏和程序崩溃等问题。 文件指针移动 要移动文件指针到指定位置可以使用seek()函数。文件指针是一个内部变量用于指示当前读写位置在文件中的位置。seek()函数接受两个参数第一个参数用于指定新的位置以字节为单位第二个参数可选表示要从哪个位置开始偏移0表示从文件开头开始算起默认值1表示从当前位置开始算起2表示从文件末尾开始算起。移动后下一次读写操作将从指定位置开始。
file open(text.txt, r)
# 读取前6个字符
data file.read(6)
# 移动文件指针到文件开头
file.seek(0)
# 再次读取前6个字符
data file.read(6)
file.close() 除了seek()函数还可以使用tell()函数来获取当前文件指针的位置。tell()函数返回一个整数表示当前文件指针的位置。
file open(text.txt, r)
data file.read(6)
position file.tell()
print(position)
file.close() 获取目录列表 在Python中可以使用os模块的listdir()函数来获取目录列表该函数将返回给定目录中的所有文件和目录的名称列表。
import oscur_dir os.getcwd()
files os.listdir(cur_dir)
for file in files:print(file) 在Python 3.4及更高版本中还可以使用os模块的scandir()函数扫描目录的内容。scandir()函数会返回一个生成器每次迭代产生一个ScandirItem对象该对象代表目录中的一个条目包括文件、目录、链接等。
import oscur_dir os.getcwd()
for item in os.scandir(cur_dir): print(item.path, item.is_file()) 我们还可以使用pathlib模块的Path()函数返回一个PosixPath或WindowsPath对象该对象有一个iterdir()函数用于创建一个包含该目录下所有文件和目录的迭代器。由iterdir()函数生成的每个条目都包含文件或目录的信息比如名称、文件属性等。
import os
from pathlib import Pathcur_dir os.getcwd()
entries Path(cur_dir)
for entry in entries.iterdir():print(entry.name, entry.is_dir()) 除了iterdir()函数Path对象还包括不少实用的函数可参看下面的介绍。 Path.mkdir(mode0o777, parentsFalse, exist_okFalse)创建目录。如果目录已经存在exist_okTrue参数将避免引发异常。注意需要确保当前用户具有足够的权限来创建目录如果目录权限不允许创建或发生其他错误可能会引发异常。 Path.unlink(missing_okFalse)删除文件。注意需要确保当前用户具有足够的权限来删除文件如果文件权限不允许删除或发生其他错误可能会引发异常。 Path.chmod(mode)改变文件权限。注意需要确保当前用户具有足够的权限来改变文件权限如果权限不足或发生其他错误可能会引发异常。 Path.chown(uid, gid, recursiveFalse)改变文件所有者uid和gid参数指定新的所有者和组。注意需要确保当前用户具有足够的权限来改变文件所有者。在某些操作系统上该功能可能不可用或有限制。如果权限不足或发生其他错误可能会引发异常。 Path.touch(mode0o777, exist_okTrue)创建新文件如果文件已存在则不改变内容。该函数需要写入权限才能创建文件如果当前用户没有足够的权限可能会引发权限错误。 Path.rmdir(missing_okFalse)删除目录。注意该函数只能删除空目录如果目录中包含文件或其他目录将无法进行删除。另外使用该函数时需要确保当前用户具有足够的权限来删除目录如果目录权限不允许删除或发生其他错误可能会引发异常。 Path.rename(new_path)重命名文件或目录。如果文件或目录已经存在它将被覆盖。注意在使用该函数时需要确保当前用户具有足够的权限来重命名文件或目录如果权限不足或发生其他错误可能会引发异常。 Path.exists(path, exist_okFalse)检查路径是否存在。 Path.is_dir(path)检查路径是否为目录。 Path.is_file(path)检查路径是否为文件。 Path.glob(pattern)对给定的模式进行glob遍历。注意需要确保当前用户具有足够的权限来访问目录中的文件如果发生权限不足或其他错误可能会引发异常。 Path.resolve(strictFalse)获取文件或目录的绝对路径。