os库:主要作用是:操作文件、文件夹、环境变量等与操作系统相关的操作
1. 文件路径操作
1.os.getcwd():获取当前工作目录的路径
2.os.path.absolute(filepath):返回file的绝对路径
3.os.path.dirname(filepath):返回file的文件夹的路径
4.os.path.basename(filepath):返回file的名字
5.os.path.join(filepath1,filepath2,...):将file1,file2等的路径组件组成一个完成的路径
6.os.path.split(filepath):将路径分割成目录名和文件名,并返回一个元组
7.os.path.exists(filepath):检查file路径的文件是否存在
8.os.path.relpath(filepath1,filepath2):返回从file2到file1的相对路径,如果没有提供file2,则默认是当前目录
9.os.listdir(filepath=''):返回指定路径下的所有文件夹和目录名,构成一个列表
10.os.walk(filepath):
for root, dirs, files in os.walk('/my/directory'):
for file in files:
print(os.path.join(root, file))11.os.path.splitext(file.c):用来分离文件名和拓展名
题目1:检查文件是否存在
编写一个Python程序,该程序接收一个文件名作为输入(不包含路径),并假设该文件位于用户的主目录下名为"Documents"的文件夹中。程序需要构造出该文件的完整路径,并检查该文件是否存在。
题目2:路径拼接与文件名修改
题目描述:
给定一个目录路径base_dir
和一个文件名file_name
,以及一个新的文件名new_file_name
。你需要使用os.path
模块来完成以下任务:
- 拼接
base_dir
和file_name
以获取完整的文件路径。 - 修改该路径中的文件名为
new_file_name
,同时保持文件扩展名不变(如果file_name
包含扩展名)。 - 打印出修改后的完整文件路径。
2. 环境变量
环境变量(Environment Variables)是操作系统中用来指定操作系统运行环境的一些参数,这些参数通常是字符串形式,它们为操作系统或正在运行的程序提供了一些额外的信息或配置。环境变量可以被系统中的任何进程访问,包括操作系统本身和所有用户启动的程序。
在python的os库中,与环境变量操作有关的方法主要涉及到os.environ对象的使用。os.environ模拟了字典行为的对象,用于表示操作系统的环境变量。通过它,我们可以获取,设置,修改,删除环境变量的值。
1.os.environ.get(key,default=none) #获取
2.os.environ[key] = value #设置
3.os.environ[key] = new_value #修改
4.del os.environ[key] #删除
5.os.environ #是一个模拟字典的对象
使用
for key, value in os.environ.items():
循环
题目:
编写一个Python程序,该程序读取环境变量PATH
,并将其拆分成单独的目录列表,然后打印出列表中的第一个目录。
3. 文件系统操作
文件操作:
1.创建文件 with open("test.txt", "w") as f: f.write("Hello, world!") 如果文件不存在,会创建
2.删除文件 os.remove(path)
3.文件重命名 os.rename(oldname,newname)
4.判断是否为文件 os.path.isfile(path)
5.获取文件信息
目录操作:
1.创建目录 os.mkdir(path)
2.删除目录 os.rmdir(path)
3.获取当前目录 os.getcwd()
4.改变当前工作目录 os.chdir()
题目:
编写一个Python程序,该程序检查当前目录下是否存在名为"temp_folder"的文件夹,如果不存在,则创建它,并在其中创建一个名为"test.txt"的空文件。
4. 进程管理
进程管理主要是multiprocessing模块(略)
题目:
编写一个Python程序,该程序打印出当前Python脚本的PID(进程ID)和它的父进程PID。
5. 执行外部命令和程序
常用
subprocess(略),管理和启动子进程
题目:
编写一个Python程序,该程序使用os.system
(虽然通常推荐使用subprocess
,但这里按题目要求)来执行系统命令dir
(Windows)或ls
(Linux/macOS),并打印命令的输出。
注意:由于os.system
的局限性,这里不直接捕获输出,而是让它在控制台中显示。实际开发中,建议使用subprocess
。
答案提示(以Windows为例,Linux/macOS请替换为ls
):