python os模块详解,python中os的用法
Yyds干货库存
Python标准库的os库是Python标准库之一,它提供了非常丰富的读写文件和目录的方法。
1.目录操作。获取当前目录#编码:utf-8#开发者:yangxiaoeng #开发时间:2022/07/05 20:38导入os#获取当前工作目录(绝对路径)print(OS . getcwd())# e:\ new \ Python Project \ Blog #获取当前工作目录(绝对路径),值返回print(OS . getcwdb())# b e:\ \ new \ \ Python Project \ \ Blog #获取当前目录,用.表示print(os.curdir) #。#用获取当前目录的父目录.
1.2.创建目录#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#创建目录,路径可以是绝对路径,也可以是相对路径。运行在linux系统上的程序还需要指定mode参数,即文件夹#的权限当文件目录存在时,重新创建时会报错。所以在实际开发中创建目录时,需要确定是否有if os.path.lexists(。/test): #确定是否有打印(。/test已经存在)else: os.mkdir(。/test) #穿着。/test 目录和.代表等同于OS . mkdir( test )print(OS . listdir( e:\ \ new \ \ python project \ \ blog )#[ config , config.txt , demo.py , image , music , python 0 .__init__。py]#如果OS.path.l存在则递归创建目录( e:\ \ New \ \ Python Project \ \ blog \ \ test \ \ 12 \ \ 123 ):pass else:OS . make diters( test \ \ 123 )New \ \ Python Project \ \ blog \ \ test )#[ 12 ]print(OS . listdir( e:\ \ New \ \ Python Project \ \ blog \ \ test \ \ 12 ))#[ 213 ]。测试\\12\\123
1.3.删除目录#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#删除单个目录#目录不存在时报错,删除时判断目录是否存在# OS . rmdir( test 123 )# FileNotFoundError:[WinError: test 123 如果OS.path.l存在( test1): OS.rmdir (test1 )否则:print (test1目录不存在)#非删除时判断是否为空目录,若OS.path.l存在则删除( test 2 ): test else:print( test 2目录不存在)#先判断目录是否存在,再判断目录是否不为空,若OS.path.l存在则执行相应操作( test ):若OS.listdir (test): print (test目录不为空)else:OS . rmdir( test )else:print( test目录不存在)#删除多个目录#错误操作# OS . remove dirs( test 123 )# file not found错误:[winerror2]系统找不到指定的文件。 test123 如果OS.path.l存在( test4 ):OS . remove dirs( test4 )Else:print( test4目录不存在)#当目录不为空,OS.path.l存在时报告错误(r test/12/213 ):OS . remove dirs(r test/12/213 )Else:print( test/12/213目录不存在)# test/12/213 test下只有12个目录然后删除test#删除目录22和44,11目录不为空(有33个目录),所以11目录保留if OS。path . l exists(r 11/22/44 ):OS . remove dirs(r 11/22/44 )else:print( 11/22
1.4.重命名目录#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#目录重命名#语法格式os.rename(oldName ,NewName)#原目录不存在时出错# os.rename (old test , new test) #找不到文件错误:[winerror2]系统找不到指定文件。旧测试-新测试如果OS.path.l存在(旧测试):OS.rename(旧测试,新测试)else: print(旧测试目录不存在)如果OS.path.l存在( 11): OS.rename(
1.5.更改目录#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#将工作目录更改为E:\new\pythonProject。在Python中,有转义符的作用,# so \将下面的转移到 #从根目录开始的文件路径称为绝对路径,从当前位置开始的路径称为相对路径print(OS . getcwd())# E:\ new \ Python project \ Blog #绝对路径OS . chdir(r E:\ new \ Python project \ Blog \ new test )print(OS . getcwd())# E:\ new \ Python project \ Blog \ new testos . chdir(r E:\ n/new test’)print(OS . getcwd())# e:\ new \ python project \ blog \ new test #切换到当前目录的父目录OS . chdir(OS . pardir)print(OS . getcwd())# e:\。
1.6.获取目录中文件的内容#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#获取目录中文件的内容#获取指定目录中文件夹和文件的名称;只会找到指定目录的当前目录下的文件名和文件夹名,而不会找到文件名和文件夹名print(OS . listdir( e:\ \ new \ \ Python Project \ \ blog )#默认当前目录print(os.listdir())#当文件不存在时给出错误,使用时先判断目录是否存在# print(OS . listdir(r e:\ new \ Python Project \ blog 1 )#找不到文件错误:[winerror3]系统找不到指定路径。 e: \ \ new \ \ Python Project \ \ blog1 如果os.path.l存在(r e:\ new \ Python Project \ blog 1 ):print(OS . listdir(r e:\ new \ Python Project \ blog 1 ))
1.7.确定目录是否存在#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20: 38导入OS print(OS . path . l exists(r new test )# true print(OS . path . lexists(r old test ))# False print(OS . path . lexists(r 11 \ old test )# False
1.8.确定是否是目录#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os#目录不存在且所有非目录返回false print(OS . path . isdir(r 11 )# false print(OS . path . isdir(r config )# false print(OS . path . isdir(r new test ))# True
1.9.确定是否是绝对路径#编码:utf-8#开发人员:杨晓鹏#开发时间:2022/07/05 20:38导入os#路径不存在且两个非绝对路径都返回false print(OS . path . isabs(r 11 )# false print(OS . path . isabs(r config )# false print(OS . path . isabs(r new test )# false print(OS . path . isabs(r new test ))# false print(e:\ new \ python project \ Blog
2.在文件操作文件的IO操作之后,必须关闭连接的对象标志。当有多个值时,用 2.1分隔它们。读写文件#编码:utf-8#开发人员:杨小鹏#开发时间:2022/07/05 20:38导入os文件操作文件。文件的IO操作结束后,连接对象的通用格式os.open(path,flags,mode)必须关闭。
常用标志:
Os。O _ RDONLY:以只读方式打开。
Os。O_WRONLY:以只写模式打开。
Os。O_RDWR:以读写模式打开。
Os。O_NONBLOCK:不阻塞地打开。
Os。O_APPEND:作为追加打开。
Os。O_CREAT:创建或打开文件
Os。O_TRUNC:打开一个文件,将其长度截短为零(你必须有写权限)
当标志有多个值时,请使用以分隔的只读权限打开配置文件。如果文件不存在,则报告一个错误。先确定是否存在再操作。如有必要,先判断是否是OS.path.l存在的文件(r e:\ new \ python project \ blog \ config . txt ):
FD=os . open(r e:\ new \ python project \ Blog \ config . txt ,OS。O _仅)
读取11个字符,从0开始计数打印(操作系统。读(FD,10)) # b 12356789ab OS。关闭(FD)否则:
及格
打开配置文件fd1=os.open的写权限(e:\ new \ python project \ blog \ config . txt,os.o _ wronly)
打印(操作系统。READ (FD1,10)) # OSERROR: [ERRNO9] Bad文件描述符用新字符替换文件的前N个字符,替换的长度由被替换内容的长度决定。OS。WRITE (FD1,bytes (Python , UTF-8 )#文件的读写是以字节类型访问的。
os.close(fd1)
文件存在并已打开,但文件不存在。添加FD2=OS . open(e:\ new \ python project \ blog \ config . txt,os.o _ rdwr)
print(os.read(fd2,10))
os.write(fd2,字节(“java”,“UTF-8”))
print(os.read(fd2,10))
os.close(fd2)
追加模式打开文件,必须具有写权限fd3=os。打开(E:\ new \ python project \ Blog \ config。txt,OS .O_RDWR os .o _追加)
打印(操作系统读取(3,100第纳尔)
os.write(fd2,字节(“java”,“UTF-8”))
os.close(fd2)
![在这里插入图片描述](https://s 2.51 CTO。com/images/blog/202207/05232345 _ 62c 45781d 807 f 86041。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w _ 750)# # 2.2,创建文件` ` python#编码:utf-8#开发人员:杨小鹏#开发时间导入操作系统 常用的标志:操作系统O _仅:以只读的方式打开操作系统.仅O _:以只写的方式打开操作系统.O_RDWR:以读写的方式打开操作系统.O_NONBLOCK:打开时不阻塞操作系统.o _附加:以追加的方式打开操作系统.O_CREAT:创建或打开文件操作系统.TRUNC:打开一个文件并截断它的长度为零(必须有写权限)# 创建空文件fd=os.open(text.txt ,os .O_CREAT)os.close(fd)#创建文件并写入数据时须具有写权限fd=os.open(text.txt ,os .O_CREAT os .O_RDWR)os.write(fd,bytes(Yang , 8))os.close(fd)
2.3、删除文件#编码:utf-8#开发人员:杨小鹏#开发时间:导入操作系统#文件不存在时报错如果操作系统。路径。lexists( text。txt ):OS。删除(文本。txt )else:print(文件不存在)
2.4、重命名文件#编码:utf-8#开发人员:杨小鹏#开发时间:导入操作系统#文件不存在时报错如果操作系统。路径。lexists( text。txt ):OS。重命名(文本。 txt , new.txt)else: print(文件不存在)
2.5、文件判断#编码:utf-8#开发人员:杨小鹏#开发时间:导入操作系统#文件是否存在打印(操作系统。路径。存在(r e:\ new \ python project \ Blog \ config。txt )# true #是否为文件打印(操作系统。路径。是文件(r e:\ new \ python project \ Blog \ config。txt )# True
3、路径操作#编码:utf-8#开发人员:杨小鹏#开发时间:导入操作系统#拼接print(os.path.join(11 , 22 , 33 , server。log )# 11 \ 22 \ 33 \服务器。日志编号分离路径中的路径寄文件名打印(操作系统。路径。split(r E:\ new \ python project \ Blog \ config。txt )#( E:\ \ new \ \ python project \ \ Blog , config。txt )打印(OS。路径。split(r E:\ new \ python project \ Blog)#( E:\ \ new \ \ python project , Blog )#获取路径中的文件名打印(操作系统。路径。basename(r e:\ new \ python project \ Blog \ config。txt )# config。txt #获取路径中的路径名打印(操作系统。路径。dirname(r E:\ new \ python project \ Blog \ config。txt )# E:\ new \ python project \ Blog #获取绝对路径打印(操作系统。路径。abspath(r Blog \ config。txt )# E:\ new \ python project \ Blog \ Blog \ config。txt #分离文件拓展名打印(操作系统。路径。split ext(r E:\ new \ python project \ Blog \ config。txt )#( E:\ \ new \ \ python project \ \ Blog \ \ config ,).txt’)
4、其他#编码:utf-8#开发人员:杨小鹏#开发时间:导入操作系统#显示当前使用系统平台新台币代表Windows, posix 代表Linuxprint(os.name) # nt#分隔符打印( 11 操作系统。更改服务器。log )# 11/服务器。日志打印( 11 操作系统。路径。更改服务器。log )# 11/服务器。日志编号系统路径分隔符号;窗户为,linux为/ print(OS。sep)# \ print(OS。路径。sep)# \ #获取文件名称和后缀之间的间隔符号print(os.extsep) # .打印(- )#换行符打印(操作系统。linesep)打印( 110 OS。linestep 119 )#执行操作系统指令操作系统(目录)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。