|
一、介绍  ython的os模块提供了许多与操作系统交互的函数,可以用于文件和目录的操作、进程管理、环境变量的访问等。以下是os模块的一些常用功能:文件和目录操作:os模块提供了许多函数来进行文件和目录的操作,如创建文件夹(os.mkdir)、删除文件夹(os.rmdir)、重命名文件或文件夹(os.rename)、获取文件或目录信息(os.stat)等。环境变量:os模块提供了访问和修改环境变量的函数,如获取指定环境变量的值(os.getenv)、设置环境变量的值(os.putenv)等。进程管理:os模块提供了一些函数来进行进程管理,如启动一个新的进程(os.system)、获取当前进程的ID(os.getpid)、等待子进程结束(os.wait)等。路径操作:os模块提供了一些函数来进行路径操作,如获取当前工作目录(os.getcwd)、拼接路径(os.path.join)、判断路径是否存在(os.path.exists)等。杂项操作:os模块还提供了一些其他杂项操作,如执行系统命令(os.popen)、修改文件权限(os.chmod)、获取文件列表(os.listdir)等。 总的来说,os模块提供了许多与操作系统交互的函数,可以帮助我们在Python程序中进行文件和目录操作、进程管理等操作。详细的文档可以在Python官方文档中找到。二、目录操作2.1 获取目录 2.1.1获取当前工作目录绝对路径os.getcwd()>>>E:\Work\WorkScript 2.1.2获取当前工作目录绝对路径(Unicode编码)os.getcwdb()>>>b'E:\\Work\\WorkScript' 2.1.3 获取当前目录os.curdir>>>. 2.1.4 获取当前目录上级目录os.pardir>>>..2.2 判断目录是否存在os.path.lexists(指定路径)>>>TrueorFalse2.3获取目录下内容 默认当前目录:os.listdir()>>>['.idea','.venv','test.py'] 指定目录:os.listdir(指定目录)>>>['.idea','.venv','test.py'] 目录不存在时报错,获取前先判断。importosifos.path.lexists(指定目录):print(os.listdir(指定目录))else:print("目录不存在")2.4创建目录 目录不存在时报错,创建前先判断。os.mkdir(指定目录)importosifos.path.lexists(指定目录):print("指定目录已存在")elses.mkdir(指定目录)2.5删除目录 目录不存在或非空时报错,删除前先判断。os.rmdir(指定目录)importosifos.path.lexists(指定目录):ifos.listdir(指定目录):print("目录非空")elses.rmdir(指定目录)else:print("目录不存在")2.6重命名目录 目录不存在时报错,重命名前先判断。os.rename(旧路径名,新路径名)importosifos.path.lexists(指定目录)s.rename(指定目录,新路径名)else:print('目录不存在')2.7切换目录os.chdir(指定绝对路径)2.8判断是否是目录os.path.isdir(指定目录)>>>TrueorFalse2.9判断是否是绝对目录os.path.isabs(指定目录)>>>TrueorFalse三、路径操作3.1路径拼接os.path.join("123","456","789")>>>123\456\7893.2分离路径os.path.split("E:/Work/WorkScript/test.py")>>>('E:/Work/WorkScript','test.py')os.path.split("E:/Work/WorkScript")>>>('E:/Work','WorkScript')3.3获取路径中文件名os.path.basename("E:/Work/WorkScript/test.py")>>>test.py3.4获取绝对路径os.path.abspath("")>>>E:\Work\WorkScriptos.path.abspath("test.py")>>>E:\Work\WorkScript\test.py3.5获取文件扩展名os.path.splitext("E:/Work/WorkScript/test.py")>>>('E:/Work/WorkScript/test','.py')四、文件操作4.1打开文件 指令格式:os.open(path,flags,mode)其中flag有如下:os.O_RDONLY:以只读的方式打开os.O_WRONLY:以只写的方式开os.O_RDWR:以读写的方式打开os.O_NONBLOCK:打开时不阻塞os.O_APPEND:以追加的方式打开os.O_CREAT:创建或打开文件os.O_TRUNC:打开一个文件并截断它的长度为零(必须有写权限) 示例:#打开文件进行读取操作withopen("file.txt","r")asfile:#读取文件内容content=file.read()print("文件内容:",content)4.2关闭文件 在Python中,当使用open()函数打开文件后,应该在文件操作完成后显式地关闭文件,以释放资源并确保文件被正确保存。可以使用文件对象的close()方法来关闭文件。#打开文件进行读取操作file=open("file.txt","r")#读取文件内容content=file.read()print("文件内容:",content)#关闭文件file.close() 另一种更安全的方式是使用with语句来打开文件,这样可以确保文件在with代码块结束时自动关闭,无需显式调用close()方法。#使用with语句打开文件进行读取操作withopen("file.txt","r")asfile:#读取文件内容content=file.read()print("文件内容:",content)4.3创建文件#定义文件路径file_path="new_file.txt"#打开文件并写入内容withopen(file_path,"w")asfile:file.write("Hello,thisisanewfilecreatedusingPython!")print("文件创建成功:",file_path)'运行运行4.4重命名文件importos#定义旧文件名和新文件名old_file_name="old_file.txt"new_file_name="new_file.txt"#重命名文件os.rename(old_file_name,new_file_name)print("文件重命名成功:",new_file_name)4.5删除文件importos#定义要删除的文件路径file_path="file_to_delete.txt"#删除文件os.remove(file_path)print("文件删除成功:",file_path)4.6判断文件是否存在importos#定义文件路径file_path="file.txt"#判断文件是否存在ifos.path.exists(file_path):print("文件存在:",file_path)else:print("文件不存在:",file_path)'运行运行五、环境变量操作5.1获取环境变量字典os.environ 使用os.environ来获取系统的所有环境变量,并将其存储在env_vars字典中。然后遍历这个字典,打印每个环境变量的键值对,这样可以查看系统中所有的环境变量及其对应的值。importos#获取系统的所有环境变量env_vars=os.environ#打印所有环境变量forkey,valueinenv_vars.items():print(f"{key}:{value}")'运行运行5.2获取指定环境变量os.getenv(env_var_name) 使用os.getenv()函数来获取名为"PATH"的环境变量的值,并将其存储在env_var_value变量中。然后,打印出该环境变量的名称和对应的值。importos#指定要获取的环境变量名称env_var_name="PATH"#获取指定环境变量的值env_var_value=os.getenv(env_var_name)print(f"{env_var_name}的值为:{env_var_value}")'运行运行5.3添加环境变量os.putenv("NEW_VARIABLE","new_value") 使用os模块的putenv()函数来添加或修改环境变量。putenv()函数接受环境变量的名称和值作为参数,并将其添加到系统的环境变量中。importos#添加新的环境变量os.putenv("NEW_VARIABLE","new_value")'运行运行六、通用自定义函数 6.1获取指定目录下所有一级目录集合defget_next_all_folder(path):"""获取指定目录下所有一级目录集合:parampath:指定路径:return:一级目录文件夹集合"""folder_list=[]ifnotos.path.lexists(path):print("输入路径不存在")else:below_paths=os.listdir(path)forbelow_pathinbelow_paths:entire_path=os.path.join(path,below_path)ifos.path.isdir(entire_path):folder_list.append(entire_path)returnfolder_list'运行运行6.2获取指定目录下指定名称的一级目录集合importosimportglobdefget_next_assign_folder(path,assign_name):"""获取指定目录下指定名称的一级目录集合:parampath:指定路径:paramassign_name:指定文件/文件夹名称(可模糊查询,例:"csdn*"查询以csdn开头的文件夹):return:一级目录文件夹集合"""folder_list=[]ifnotos.path.lexists(path):print("输入路径不存在")else:folder_list=glob.glob(os.path.join(path,assign_name))returnfolder_list'运行运行6.3 批量判断指定文件夹路径集合是否存在某文件defjudge_file_exists(folder_list,file_name):"""批量判断指定文件夹路径集合是否存在某文件:paramfolder_list:指定文件夹集合:paramfile_name:待判断的文件名称:return:该一级目录以及是否存在文件的元组(first_level_path,TrueorFalse)"""judge_dict={}forfolder_pathinfolder_list:file_path=os.path.join(folder_path,file_name)ifos.path.exists(file_path):judge_dict[file_path]=Trueelse:judge_dict[file_path]=Falsereturnjudge_dict'运行运行
|
|