文件处理的基本操作与扩展
一、文件的打开和读取
1、打开文件
open() 函数有两个参数:文件名和模式
一下 有四种打开文件的不同方式
- “r”: 读取 - 默认值。打开文件进行读取,如果不存在则报错
- “a” - 追加 - 打开供追加的文件,如果不存在则创建该文件。
- “w” - 写入 - 打开文件进行写入,如果不存在则创建该文件。
- “x” - 创建 - 创建指定的文件,如果存在则返回错误。
2、读取文件
其中包括了:
- 全部读取:read()
- 行读取:readline()
- 字符读取:read(x)
f = open("demofile.txt", "r")
print(f.read()) # 整体读取
print(f.read(5)) # 读取前5个字符
print(f.readline()) # 读取文件中的一行
for x in f: # 逐行读取文件
print(x)
f.close() # 关闭文件
写入文件: 就是往open函数里面添加参数
“a” - 追加 - 会追加到文件的末尾
“w” 覆盖 - 会覆盖任何已有的内容
示例:
f = open("1.txt", "a", encoding="utf-8")
f.write("写入的新内容")
f.close()
二、OS模块
1、删除&创建文件夹
删除目录:
- os.rmdir(“a\b”) # 报错,只能删除空文件夹,删除b
- os.removedirs(“a\b”) # 正确,可以删除多级目录,删除a\b
创建目录:
- os.mkdir(r"d:\test\test") # 报错,只能创建单层目录
- os.makedirs(“a\b”) # 正确,可以创建多级目录
2、 os
模块文件和目录操作函数列表
-
os.listdir(path)
- 描述:返回指定路径下的文件和目录列表。
- 参数:
path
为要列出的目录路径。 - 返回值:包含文件和目录名的列表。
-
os.mkdir(path)
- 描述:创建单层目录,若目录已存在则抛出异常。
- 参数:
path
为要创建的目录路径。
-
os.makedirs(path, exist_ok=False)
- 描述:递归创建目录,若目录已存在则不抛出异常。
- 参数:
path
为要创建的目录路径,exist_ok
为True时,若目录已存在则不抛出异常,为False时,若目录已存在则抛出异常。
-
os.remove(path)
- 描述:删除指定路径的文件。
- 参数:
path
为要删除的文件路径。
-
os.rmdir(path)
- 描述:删除指定路径的空目录。
- 参数:
path
为要删除的目录路径。
-
os.removedirs(path)
- 描述:递归删除目录,从子目录开始删除,直到遇到非空目录或目录不存在。
- 参数:
path
为要删除的目录路径。
-
os.rename(src, dst)
- 描述:将文件或目录从src重命名为dst。
- 参数:
src
为原始路径,dst
为新路径。
3、 路径操作
os
模块路径操作函数列表
-
os.path.join(path, *paths)
- 描述:连接路径名组件,返回一个新的路径字符串。
- 参数:
path
为第一个路径组件,*paths
为可选的后续路径组件。
-
os.path.abspath(path)
- 描述:返回绝对路径。
- 参数:
path
为要转换的路径。
-
os.path.exists(path)
- 描述:判断路径是否存在。
- 参数:
path
为要检查的路径。 - 返回值:存在返回True,否则返回False。
-
os.path.isdir(path)
- 描述:判断是否为目录。
- 参数:
path
为要检查的路径。 - 返回值:是目录返回True,否则返回False。
-
os.path.isfile(path)
- 描述:判断是否为文件。
- 参数:
path
为要检查的路径。 - 返回值:是文件返回True,否则返回False。
4、其他操作
os
模块其他操作函数列表
-
os.getcwd()
- 描述:返回当前工作目录。
- 返回值:当前工作目录的字符串。
-
os.chmod(path, mode)
- 描述:改变文件或目录的权限。
- 参数:
path
为要改变权限的文件或目录路径,mode
为新的权限模式。
-
os.system(command)
- 描述:在子shell中执行系统命令。
- 参数:
command
为要执行的命令字符串。 - 返回值:命令执行状态码。
-
os.environ
- 描述:一个包含环境变量的字典。
-
os.getenv(var_name, default=None)
- 描述:获取指定环境变量的值。
- 参数:
var_name
为环境变量名,default
为找不到时返回的默认值。
5、with as
with as
语句讲解
-
with as
语句是Python中用于处理上下文管理器的一种优雅方式。 -
上下文管理器是实现了
__enter__()
和__exit__()
方法的对象,常用于资源管理,如文件操作、数据库连接等。 -
with
语句在进入代码块前调用上下文管理器的__enter__()
方法,退出代码块后调用__exit__()
方法。 -
语法示例:
with context_manager as alias:
-
context_manager
是上下文管理器对象,alias
是可选的别名,可以在代码块中使用该别名访问上下文管理器。 -
with as
语句确保在离开代码块时,上下文管理器的__exit__()
方法总是会被调用,即使代码块内发生了异常。 -
with as
语句在处理资源时,可以自动关闭文件、释放资源等,无需手动处理资源的释放问题。 -
示例:处理文件读取操作
with open("example.txt", "r") as file:
content = file.read()
print(content)