Python学习OS 模块来处理文件和目录

来源:互联网 发布:5sing音乐软件 编辑:程序博客网 时间:2024/06/05 11:34

1、os.access() 方法使用当前的uid/gid尝试访问路径
access()方法语法格式如下: os.access(path, mode)

>>> import os,sys#路径是否存在>>> root = os.access("/Users/wangyue/Desktop/wangyue.txt", os.F_OK) >>> print (root)True#是否可读>>> root = os.access("/Users/wangyue/Desktop/wangyue.txt", os.R_OK)>>> print (root)True#是否可写入>>> root = os.access("/Users/wangyue/Desktop/wangyue.txt", os.W_OK)>>> print(root)True#是否可执行>>> root = os.access("/Users/wangyue/Desktop/wangyue.txt", os.X_OK)>>> print(root)False>>> 

2、os.chdir() 方法用于改变当前工作目录到指定的路径

>> import os,sys>>> currentPath = os.getcwd()>>> print(currentPath)/Users/wangyue/Documents>>> path = "/Users/wangyue/Desktop">>> os.chdir(path)>>> currentPath = os.getcwd()>>> print(currentPath)/Users/wangyue/Desktop

3、os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下
walk()方法语法格式:os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

#top可以是指定路径 >>> import os产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】>>> for root, dirs, files in os.walk("/Users/wangyue/Desktop/UI", topdown=False):    for name in files:         print(os.path.join(root, name))    for name in dirs:                 print(os.path.join(root, name))/Users/wangyue/Desktop/UI/云跑步首页切图/减震模式/减震模式_公路图标@2x.png/Users/wangyue/Desktop/UI/云跑步首页切图/减震模式/减震模式_公路图标@3x.png/Users/wangyue/Desktop/UI/云跑步首页切图/减震模式/减震模式_塑胶跑道图标@2x.png/Users/wangyue/Desktop/UI/云跑步首页切图/减震模式/减震模式_塑胶跑道图标@3x.png#有点多只截取一部分

4、os.close() 方法用于关闭指定的文件描述符 fd(文件描述符)

>>> import os, sys>>> fd = os.open("/Users/wangyue/Desktop/wang.txt", os.O_RDWR|os.O_CREAT)>>> os.write(fd,u"wwwwwwww".encode())  #这里需要传入二进制流,不是字符串>>> os.close(fd)  #关闭文件

5、os.closerange() 方法用于关闭所有文件描述符 fd,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略

>>> import os, sys>>> fd = os.open("/Users/wangyue/Desktop/wang.txt", os.O_RDWR|os.O_CREAT)>>> os.write(fd,u"wwwwwwww".encode())  #这里需要传入二进制流,不是字符串>>> os.closerange(fd,fd)  #关闭文件

6、os.dup() 方法用于复制文件描述符 fd

>>> import os, sys>>> fd = os.open("/Users/wangyue/Desktop/wang.txt", os.O_RDWR|os.O_CREAT)>>> copy_fd = os.dup(fd)>>> os.write(copy_fd, "wangyue".encode())7>>> os.closerange(fd,copy_fd)

7、os.fdopen() 方法用于通过文件描述符 fd 创建一个文件对象,并返回这个文件对象,fdopen()方法语法格式:os.fdopen(fd, [, mode[, bufsize]]);
bufsize – 可选参数,指定返回的文件对象是否带缓冲
bufsize=0,表示没有带缓冲
bufsize=1,表示该文件对象是行缓冲的
bufsize=正数,表示使用一个指定大小的缓冲冲,单位为byte

>>> import os, sys>>> fd = os.open("/Users/wangyue/Desktop/wang.txt", os.O_RDWR|os.O_CREAT)>>> file = os.fdopen(fd,"w+")>>> file.write("wwwwwwwwwwwwww\nwwwwwwwwwwwwwww\n")31>>> os.lseek(fd,0,0)   #将文件指针指向文件开头的位置0>>> os.read(fd,100)   'wwwwwwwwwwwwww\nwwwwwwwwwwwwwww\n'>>> os.close(fd)

8、os.remove() 方法用于删除指定路径的文件

>>> import os,sys#path文件夹的内容>>> for rootPath,dirs,files in os.walk("/Users/wangyue/Desktop/Path", topdown = False):    for name in files:        print(os.path.join(rootPath,name))/Users/wangyue/Desktop/Path/wang.txt/Users/wangyue/Desktop/Path/wangyue.txt#删除指定文件夹>>> os.remove("/Users/wangyue/Desktop/Path/wang.txt")>>> for rootPath,dirs,files in os.walk("/Users/wangyue/Desktop/Path", topdown = False):    for name in files:        print(os.path.join(rootPath,name))#删除后文件夹还剩余的文件/Users/wangyue/Desktop/Path/wangyue.txt>>> 

9、os.removedirs() 方法用于递归删除目录

Use quit() or Ctrl-D (i.e. EOF) to exit#在payh里面新建的空文件夹,但是遍历的时候,显示不出来,我删除后路径下的子文件夹的确删除了,我也不清楚为什么会这样>>> import os,sys>>> for root,dirs,files in os.walk("/Users/wangyue/Desktop/Path", topdown = False):    for name in files:        print(os.path.join(root,name))/Users/wangyue/Desktop/Path/.DS_Store>>> os.removedirs("/Users/wangyue/Desktop/Path/Child")>>> for root,dirs,files in os.walk("/Users/wangyue/Desktop/Path", topdown = False):    for name in files:        print(os.path.join(root,name))/Users/wangyue/Desktop/Path/.DS_Store#的确已删除>>>