注意:本文引用自专业人工智能社区Venus AI
更多AI知识请参考原站 ([www.aideeplearning.cn])
Python的os
库主要用于与操作系统进行交互,它提供了多种功能,使得在Python程序中处理操作系统级任务变得容易。这里是一些常用功能的概览:
- 文件和目录操作:创建、删除、修改文件和目录,以及遍历目录树。
- 路径管理:提供了处理文件路径的功能,包括路径的拼接、分解以及检查路径的有效性。
- 环境变量访问:读取和设置环境变量,这对于访问操作系统级信息非常有用。
- 执行系统命令:允许从Python程序中运行操作系统命令。
- 文件属性:获取和修改文件的属性,例如权限、最后修改时间等。
- 进程管理:允许获取与当前进程相关的信息,如进程ID等。
- 文件的读取:允许用户获取系统目录中的文件,并进行一些增删改查,创建,删除等常见文件操作。
os
库的这些功能对于需要与操作系统层面交互的任务来说非常重要,特别是在文件和目录管理、环境设置方面。由于它是Python的一部分,因此可以直接在Python环境中使用,无需安装任何额外的包。
Python OS 库文件操作示例
本笔记本展示了 Python os
库用于文件操作的一些基本示例。
文件路径操作
import os
# 路径拼接
joined_path = os.path.join('folder', 'file.txt')
# 路径分割
dir_name, file_name = os.path.split(joined_path)
# 检查路径是否存在
path_exists = os.path.exists(joined_path)
# 检查是否为文件
is_file = os.path.isfile(joined_path)
# 检查是否为目录
is_dir = os.path.isdir('folder')
文件操作
# 重命名文件 (需要文件存在)
os.rename('old_name.txt', 'new_name.txt')
# 删除文件 (需要文件存在)
os.remove('file_to_delete.txt')
# 创建和删除目录
os.mkdir('new_dir')
os.rmdir('new_dir')
目录操作
# 获取当前工作目录
current_dir = os.getcwd()
# 改变当前工作目录
os.chdir('..') # 更改到上级目录
os.chdir(current_dir) # 更改回原目录
# 列出目录内容
dir_contents = os.listdir('.')
遍历目录树
# 遍历目录树
for dirpath, dirnames, filenames in os.walk('.'):
print('Directory:', dirpath)
print('Subdirectories:', dirnames)
print('Files:', filenames)
环境变量
# 获取环境变量
path_env = os.environ.get('PATH')
# 设置环境变量 (影响当前进程)
os.environ['MY_VAR'] = 'some_value'
文件的打开与关闭
在Python,使用open函数可以打开一个已经存在的文件,或者创建一个新文件。 语法格式为open(文件名,访问模式),代码如下:
f = open('test.txt', 'w')
常见访问模式的具体说明详见下表 关闭文件的函数为close(),代码如下:
# 新建一个文件,文件名为:test.txt
f = open('test.txt', 'w')
# 关闭这个文件
f.close()
文件的读和写
使用write()函数可以向文件写入数据。
此外,你可以根据需求选择不同的访问模式。
在w模式下,如果文件不存在则会创建新文件,如果文件存在则会清空原文件。
在a模式下,如果文件存在则在原文件上继续写入,如果文件不存在则会创建新文件。
在r模式下,文件将以读取模式打开,如果文件不存在,会抛出错误。代码如下:
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。实例如下:令test.txt的文本内容是hello world,i am here!,代码如下:
#wenjian.py
f = open('test.txt', 'r')
content = f.read(5)
print(content)
print("-"*30)
content = f.read()
print(content)
f.close()
hello ------------------------------ world, i am here!
注意,如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的。
此外,除了read()函数,还有一些其他函数也可以完成读取任务,具体如下:
(1)函数readlines()可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
(2)函数readline()用于读取文件中的一行,包含最后的换行符“\n”