python目录操作之os模块详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37579123/article/details/84256084

os模块

os.getcwd():获取当前目录

>>> import os

>>> os.getcwd()

'C:\\Users\\zhigang\\Desktop'

os.chdir(path):切换目录

>>> os.chdir("e:\\")

>>> os.getcwd()

'e:\\'

>>> os.chdir("C:\\Users\\zhigang\\Desktop")

>>> os.getcwd()

'C:\\Users\\zhigang\\Desktop'

>>> os.chdir("..")      #进入到上级目录

>>> os.getcwd()

'C:\\Users\\zhigang'

os.curdir:返回当前目录

>>> os.curdir   

'.'

os.pardir:返回当前目录的父目录

>>> os.pardir

'..'

>>> os.chdir(os.pardir)

>>> os.getcwd()

'C:\\Users\\zhigang'

>>> os.chdir(os.pardir)

>>> os.getcwd()

'C:\\Users'

os.mkdir(filename)在当前路径下新建文件夹

>>> os.chdir("C:\\Users\\zhigang\\Desktop")

>>> os.mkdir("gloryroad")  

os.makedirs(path):创建多级目录,默认超级权限

>>> os.makedirs("test\\test1\\test2")   

os.removedirs(path):删除多级目录,从子目录向父目录依次删除;前提是目录下都为空;如果有目录不为空,则保留

>>> os.removedirs("D:\\test\\test1\\test2")  

#会将目录下的所有内容都删除,不管是否为空;
>>> import shutil

>>> dir(shutil)

shutil.rmtree()    

os.rmdir(path):删除单级空目录,若目录不为空则无法删除,会报错

>>> os.rmdir("test")  

os.remove:删除指定的单个文件,

>>> os.remove("D:\\1.txt")

os.rename(oldname, newname): 重命名文件/目录

>>> os.rename("test1","test2")   #文件名改变

os.listdir(path)查看指定目录下的所有文件和子目录

>>> os.listdir("C:\\Users\\zhigang\\Desktop")   

**以列表的形式返回

>>> os.listdir(os.curdir)

os.walk(top,topdown=True,onerror=None,followlinks=False)

top:表示需要遍历的目录树的路径;

topdown:默认值是True,表示首先返回目录树下的文件,然后遍历目录树下的子目录。值设为False时,则标识先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件;

onerror:默认值为None,表示忽略文件遍历时产生的错误,如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历

该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名目录列表和文件列表

默认情况下,os.walk不会遍历软链接指向的子目录,若有需要请将followlinks设定为True

>>> for i in os.walk("test",topdown=True):
...     print (i)
...
('test', ['test2', 'test3'], ['1.txt', '2.txt'])
('test\\test2', ['test4'], ['3.txt'])
('test\\test2\\test4', [], ['4.txt'])
('test\\test3', [], [])

#统计文件个数和目录个数
import os

dir_count=0
file_count=0
for root, dirs, files in os.walk("testdemo",topdown=True) :
    print(u"当前目录:",root) #打印目录绝对路径
    for name in files :
        print(u'文件名:',os.path.join(root,name) )#打印文件绝对路径
        file_count+=1
    for name in dirs :
        print(u'目录名:',name) #打印目录绝对路径
        dir_count+=1

print ("目录个数%s" %dir_count)
print ("文件个数%s" %file_count)

os.name:获取当前使用的操作系统类型

>>> os.name

'nt'  #windows系统下

>>> os.name

'posix'   #linux系统下

os.stat(path):文件的具体属性

>>> os.stat("test2")

os.stat_result(st_mode=16895, st_ino=12384898975326145, st_dev=739749529, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1539497611, st_mtime=1539490460, st_ctime=1539490064)

>>> os.stat("test2").st_size   #文件大小

4096

os.system (command):运行shell命令,在linux系统中用的最多

>>> os.system("dir")    #显示当前路径下的所有文件

os.utime(path[, (atime, mtime)])

修改文件的时间属性,设置文件的access and modified time为给定的时间,如果未指定atime和mtime参数,修改的时间将会是当前的时间

import os


os.utime("test2")

fileinfo = os.stat("test2")   #修改后查看文件的属性

os.sep输出操作系统的特定的路径分隔符

>>> os.sep    #路径分隔符

'\\'

os.pathsep:输出用于分割文件路径的字符串

>>> os.pathsep  

';'

os.linesep输出当前平台是用的行终止符,win下为“\r\n”,Linux下为“\n”,Mac使用'\r'

>>> os.linesep

'\r\n'

os.environ:获取系统环境变量

os.access(path, mode):输出文件权限模式,返回布尔值

import os

print (os.access(r'c:\gloryroadtest.txt', os.W_OK))

print (os.access(r'c:\gloryroadtest.txt', os.R_OK))

print (os.access(r'c:\gloryroadtest.txt', os.X_OK))

os.chmod(path, mode):修改文件的权限

os.chmod(r'c:\gloryroadtest.txt', 777)   #可读、可写和可执行

os.popen(command [, mode='r' [, bufsize]]):运行shell命令,并返回一个文件对象。然后通过操作文件的方法去操作这个文件对象

>>> import os

>>> os.popen("ls")    #返回一个文件对象

<os._wrap_close object at 0x7f4b8167d6d8>

>>> for i in os.popen("ls"):

...     print (i)

...

#结果输出所有文件

猜你喜欢

转载自blog.csdn.net/weixin_37579123/article/details/84256084