os-操作系统接口 2019/6/8
------------------------------------------------------------------------------
本文汇总os模块的常用 操作,包括os.path。
对于文件的高级操作参考shutil模块:https://mp.csdn.net/postedit/91346064
os模块:提供对目录或文件新建/删除/查看操作,对文件及目录的路径操作 shutil:高级的 文件、文件夹、压缩包 处理模块 提供复制、移动、改名和删除文件 及 打包 压缩 解压 send2trash模块安全删除 将文件夹和文件发送到计算机的垃圾箱或回收站
序号 | 分类 | 名称 | 含义 |
1 | 常量 | os.sep | 路径分隔符'\\' |
2 | 常量 | os.altsep | 分隔符'/' |
3 | 常量 | os.curdir | 文件路径分隔符'.' |
4 | 常量 | os.extsep | 文件扩展名之间分隔的符'.' |
5 | 常量 | os.devnull | null设备的路径'nul' |
6 | 常量 | os.linesep | 行终止符'\r\n'Windows。文本写用'\n' |
7 | 常量 | os.defpath | exec函数族如没制定PATH环境变量,默认查找os.defpath值作为子进程PATH的值 |
8 | 常量 | os.pardir | 父目录常量字符串'..' |
9 | 常量 | os.pathsep | 路径分隔符分号';' |
10 | 环境变量 | os.environ | dict包含环境变量 (修改) |
11 | 环境变量 | os.environ["path"] | 得到环境变量path的值 |
12 | 环境变量 | os.getenv(varname[,value]) | 返回环境变量varname的值,os.getenv('path')如无返回value或None |
13 | 环境变量 | os.putenv(varname, value) | 设置环境变量os.putenv('PATH','/A/AA) 添加;不对os.environ产生影响应通过os.environ设置 |
14 | 其他 | os.cpu_count() | |
15 | 其他 | os.ctermid() | 返回当前进程的控制终端 |
16 | 其他 | os.strerror(code) | 返回错误码code对应的错误信息,当错误信息未知时,抛出一个ValueError异常。 |
17 | 其他 | os.umask(mask) | 设置当前进程的权限掩码,并且返回设置前的权限掩码。 |
18 | 其他 | os.uname() | 返回5元组当前操作系统信息,该5元组包括:(sysname, nodename, release, version, machine) |
19 | 其他 | os.urandom(2) | 返回一串适合加密用途的大小随机字节#b'\xa4"' |
20 | 属性 | os.name | ‘系统平台windows 'nt' |
21 | 属性 | os.path 模块 | 获取文件的属性信息。 |
22 | 文件和目录 | os.access(path, mode) | 判断文件是否可读写os.access("/tmp/foo.txt", os.R_OK) |
23 | 文件和目录 | os.chdir(path) | 改变当前工作目录;相当于CD命令; os.chdir('d:\\outlook') |
24 | 文件和目录 | os.chflags(path, flags) | 设置路径的标记为数字标记。os.chflags( path, stat.SF_NOUNLINK ) |
25 | 文件和目录 | # 为文件设置标记,使得它不能被重命名和删除 | |
26 | 文件和目录 | os.chmod(path, mode) | 修改路径的权限os.chmod(path, stat.S_IWOTH)# 设置文件可以被其他用户写入 |
27 | 文件和目录 | os.chown(path, uid, gid) | 设置文件的用户id和组id;unix |
28 | 文件和目录 | os.chroot(path) | 改变当前进程的根目录unix |
29 | 文件和目录 | os.fchdir(fd) | 通过文件描述符改变当前工作目录Unix |
30 | 文件和目录 | os.getcwd() | 得到当前目录;'C:\\Users\\Administrator' |
31 | 文件和目录 | os.getlogin() | 得到用户登录名称 'Administrator' |
32 | 文件和目录 | os.lchflags(path, flags) | 设置路径的标记为数字标记,类似 chflags(),但是没有软链接unix |
33 | 文件和目录 | os.lchmod(path, mode) | 修改连接文件权限unix |
34 | 文件和目录 | os.lchown(path, uid, gid) | 更修改文件的uid和gid,类似 chown,但是不追踪链接。Unix |
35 | 文件和目录 | os.link(src, dst) | 创建硬链接即拷贝,dst = "/tmp/foo.txt";os.link( path, dst) |
36 | 文件和目录 | os.listdir(path) | 返回path文件夹包含的文件或文件夹列表os.listdir( r'C:\Users\Administrator' ) |
37 | 文件和目录 | for file in dirs:print (file)# 输出所有文件和文件夹 | |
38 | 文件和目录 | os.lstat(path) | 像stat()返回文件信息,如path是符号链接只处理该符号链接,源文件。;fstat的别名 |
39 | 文件和目录 | os.major(device) | 从原始设备号中提取设备major号码 (用stat中st_dev或st_rdev field) |
40 | 文件和目录 | info = os.lstat(path);major_dnum = os.major(info.st_dev);#0 | |
41 | 文件和目录 | minor_dnum = os.minor(info.st_dev)#103 | |
42 | 文件和目录 | os.makedev(major, minor) | 以major和minor设备号组成一个原始设备号os.makedev(major_dnum, minor_dnum)#103 |
43 | 文件和目录 | os.makedirs(path[, mode]) | 递归文件夹创建像mkdir();如子目录存在或无法创建抛OSError |
44 | 文件和目录 | path = "/tmp/home/monthly/daily";os.makedirs( path, 0o777 ); | |
45 | 文件和目录 | os.minor(device) | 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field ) |
46 | 文件和目录 | os.mkdir(path[, mode]) | 创建目录;可指定mode权限(和系统umask掩码进行运算)如目录存在FileExistsError引发 |
47 | 文件和目录 | path = "/tmp/home/monthly/daily/hourly";os.mkdir( path, 0755 ) | |
48 | 文件和目录 | os.mkfifo(path[, mode]) | 创建命名管道,mode 为数字,默认为 0666 (八进制) |
49 | 文件和目录 | path = "/tmp/hourly";os.mkfifo( path, 0644 )# 创建目录赋予权限 | |
50 | 文件和目录 | os.mknod(filename[, mode=0600, device]) | 创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。 |
51 | 文件和目录 | filename = '/tmp/tmpfile';mode = 0600|stat.S_IRUSR;os.mknod(filename, mode) | |
52 | 文件和目录 | os.pathconf(path, name) | 返回相关文件的系统配置信息。Unix |
53 | 文件和目录 | os.popen(command[, mode[, bufsize]]) | 从一个 command 打开一个管道os.popen('mkdir nwdir','r', 1) |
54 | 文件和目录 | os.readlink(path) | 返回软链接所指向的文件的路径;Unix |
55 | 文件和目录 | os.remove(file) | 删除文件。如是目录抛出OSError;os.remove("aa.txt");os.listdir(os.getcwd()) |
56 | 文件和目录 | os.removedirs(path) | 递归删除目录,可删除非空目录;os.removedirs("/test") |
57 | 文件和目录 | os.rename(src, dst) | 重命名文件或目录,若dst是目录或存在 则引发异常os.rename('/A/AA/a','/A/AA/b') |
58 | 文件和目录 | os.renames(old, new) | 递归对目录或文件更名;注意删除权限问题os.renames("aa1.txt","newdir/aanew.txt") |
59 | 文件和目录 | os.rmdir(path) | 删除空目录,如非空抛出OSError; os.rmdir("mydir") |
60 | 文件和目录 | os.scandir(path=None) | 返回给定路径的DirEntry对象的迭代器。 |
61 | 文件和目录 | os.stat(path) | 获取path指定的路径的信息os.stat('/home/sy/Python3//01.py) |
62 | 文件和目录 | os.statvfs_result(self, /, *args, **kwargs) | 获取指定路径的文件系统统计信息 |
63 | 文件和目录 | os.symlink(src, dst) | 创建一个软链接src = '/usr/bin/python';dst = '/tmp/python';os.symlink(src, dst) |
64 | 文件和目录 | os.unlink(path) | 删除文件路径同remove() |
65 | 文件和目录 | os.utime(path, times=None) | 设置路径的访问和修改时间。times是(atime, mtime)设置文件访问和修改时间 |
66 | 文件和目录 | os.walk(top, topdown=True, οnerrοr=None, followlinks=False) | 目录树生成器。输出在目录中的文件名文件夹 |
67 | 文件和目录 | shutil.rmtree(path) | 删除整个目录树 |
68 | 文件描述符 | os.close(fd) | 关闭文件描述符 fd fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT );;os.close( fd ) |
69 | 文件描述符 | os.closerange(fd_low, fd_high) | 关闭所有文件描述符[fd_low ,fd_high), 错误会忽略os.closerange( fd, fd) |
70 | 文件描述符 | os.dup(fd) | 复制文件描述符 fd;d_fd = os.dup( fd ) os.write(d_fd, "This is test".encode()) |
71 | 文件描述符 | os.dup2(fd, fd2) | 将一个文件描述符 fd 复制到另一个 fd2;fd=open('txt','a'); os.dup2(f.fileno(), 1) |
72 | 文件描述符 | # 将这个文件描述符代表的文件传递给1描述符指向文件也就是 stdout | |
73 | 文件描述符 | os.fchmod(fd, mode) | 改变文件访问权限,文件由参数fd指定,mode是Unix下的文件访问权限 |
74 | 文件描述符 | os.fchown(fd, uid, gid) | 修改文件所有权,修改文件的用户ID和用户组ID文件由文件描述符fd指定Unix |
75 | 文件描述符 | os.fdatasync(fd) | 强制将文件写入磁盘,文件由fd指定,不强制更新文件的状态信息Unix |
76 | 文件描述符 | os.fdopen(fd, "w+") | 通过文件描述符 fd 创建文件对象#fo = os.fdopen(fd, "w+") |
77 | 文件描述符 | os.fpathconf(fd, name) | 返回打开文件系统配置信息。Unix |
78 | 文件描述符 | os.fstat(fd) | 返回文件描述符fd的状态像stat()。 |
79 | 文件描述符 | os.fstatvfs(fd) | 返回包含文件描述符fd的文件的文件系统的信息类似 statvfs(),Unix |
80 | 文件描述符 | os.fsync(fd) | 强制将文件描述符为fd的文件写入硬盘。os.write(fd, "This is test"); |
81 | 文件描述符 | fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT );os.write(fd, "This is test");os.fsync(fd) | |
82 | 文件描述符 | os.ftruncate(fd, length) | 裁剪文件fd对应的文件, 最大不能超过文件大小。os.ftruncate(fd, 10) |
83 | 文件描述符 | os.isatty(fd) | 检查一个文件描述符fd指示的文件是否是一个tty字符设备文件 #False。 |
84 | 文件描述符 | os.lseek(fd, pos, how) | 设置文件描述符 fd当前位置为pos, how= 0 ,1,2设置从文件开始,当前,尾部计算pos; |
85 | 文件描述符 | os.open(file, flags[, mode]) | 打开一个文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) |
86 | 文件描述符 | os.pipe() | 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写r, w = os.pipe() |
87 | 文件描述符 | os.read(fd, n) | 从文件描述符 fd 中读取最多 n 个字节fd = os.open("f1.txt",os.O_RDWR);ret = os.read(fd,12) |
88 | 文件描述符 | os.truncate(fd, length) | 将由path指定的文件截断为特定长度 |
89 | 文件描述符 | os.write(fd, str) | 写字符串到文件描述符 fd中. 返回实际写入的字符串长度 |
90 | 进程 | os._exit(n) | 退出状态为n进程不清理,刷新stdio缓冲区等;用在fork之后子进程;正常退出用sys.exit(n) |
91 | 进程 | os.getegid() | 返回当前进程的有效用户组ID |
92 | 进程 | os.geteuid() | 返回当前进程的有效用户ID |
93 | 进程 | os.getuid() | 返回当前进程的用户ID |
94 | 进程 | os.getgid() | 返回当前进程的用户组ID |
95 | 进程 | os.getgroups() | 返回由当前进程附加的组ID编号组成的列表 |
96 | 进程 | os.getresgid() | 返回(rgid, egid, sgid)当前进程实际用户组ID,有效的用户组ID和保存的用户组ID |
97 | 进程 | os.setegid(egid) | 设置当前进程的有效用户组ID |
98 | 进程 | os.seteuid(euid) | 设置当前进程的有效用户ID |
99 | 进程 | os.setgroups(groups) | 设置当前进程有关附加组ID,groups(int序列类型),只对超级用户有效 |
100 | 进程 | os.setpgid(pid, pgrp) | 设置进程的用户组ID如果进程的ID为pid,所在用进程组ID为pgrp。 |
101 | 进程 | os.setregid(rgid, egid) | 设置当前进程的有效用户组ID和实际用户组ID |
102 | 进程 | os.setresgid(rgid,egid,sgid) | 设置当前进程的实际组ID,有效组ID和保存的用户组ID。 |
103 | 进程 | os.setresuid(ruid,euid,suid) | 设置当前进程的实际用户ID,有效用户ID和保存的用户组ID。 |
104 | 进程 | os.setreuid(ruid, euid) | 设置当前进程的实际用户ID和有效用户ID |
105 | 进程 | os.getpgid(pid) | 返回进程ID为pid的进程的组ID,如果pid=0,则返回当前调用进程的进程组ID |
106 | 进程 | os.getpgrp() | 返回当前进程的进程组ID |
107 | 进程 | os.getppid() | 返回当前进程的父进程的ID |
108 | 进程 | os.getsid(pid) | 返回进程ID为pid的进程所在的会话的会话ID |
109 | 进程 | os.setsid() | 设置当前进程的会话ID |
110 | 进程 | os.setuid(uid) | 设置当前进程的用户ID |
111 | 进程 | os.abort() | 向调用该函数的进程发送一个SIGABRT信号,在Unix系统上默认的行为是产生一个core文件 |
112 | 进程 | os.execl(path, arg0, arg1, ...) | 执行一个新程序,用新程序替换当前子进程的进程空间,该子进程从新程序的main函数开始执行 |
113 | 进程 | os.execle(path, arg0, arg1, ..., env) | Unix下新程序进程id是原来被替换的子进程的进程id。 |
114 | 进程 | os.execlp(file, arg0, arg1, ...) | 原来子进程中打开的所有描述符默认都是可用的,不会被关闭 |
115 | 进程 | os.execlpe(file, arg0, arg1, ..., env) | execv*系列的函数表示其接受的参数是以一个list或者是一个tuple表示的参数表 |
116 | 进程 | os.execv(path, args) | execl*系列的函数表示其接受的参数是一个个独立的参数传递进去的。 |
117 | 进程 | os.execve(path, args, env) | exec*p*系列函数表示在执行参数传递过去的命令时使用PATH环境变量来查找命令 |
118 | 进程 | os.execvp(file, args) | exec*e系列函数表示在执行命令时读取该参数指定的环境变量作为默认的环境配置, |
119 | 进程 | os.execvpe(file, args, env) | 最后的env参数必须是一个mapping对象,可以是一个dict类型的对象。 |
os.execv('/bin/echo', ['foo', 'bar'])#bar foo执行一个新程序取代当前进程 | |||
os.execl('/usr/bin','argc任意','test.py','test.py的参数,...') | |||
120 | 进程 | os.fork() | fork出一个子进程,在子进程中返回0,在父进程中返回子进程ID,如果发生错误,则抛出OSError异常 |
121 | 进程 | os.nice(increment) | 增加increment到进程的nice值,返回一个新的nice值。 |
122 | 进程 | os.wait() | 等待任何一个子进程结束,返回一个tuple,包括子进程的进程ID和退出状态信息 |
123 | 进程 | os.wait3(options) | 和waitpid()类似,不需指定pid,返回3元组,包括结束子进程进程id,退出状态及资源使用信息 |
124 | 进程 | os.waitpid(pid,options) | 等待完成给定的过程 参数2:os.WNOHANG - 如没有子进程退出不阻塞waitpid()调用 |
125 | 进程 | os.WCONTINUED - 如子进程从stop状态变为继续执行,则返回进程自前一次报告以来的信息。 | |
126 | 进程 | os.WUNTRACED - 如果子进程被停止过而且其状态信息还没有报告过,则报告子进程的信息。 | |
128 | 进程 | os.getpid() | 返回当前进程ID #12100 |
129 | 进程 | os.kill(pid,sig ) | 将信号sig发送到进程pid。模块中定义了h os t平台上可用的特定信号的常量signal。 |
130 | 进程 | os.spawnl(模式,路径,... ) | 在新进程中执行程序路径。 |
131 | 进程 | os.spawnle(模式,路径,...,env ) | 在新进程中执行程序路径。 |
132 | 进程 | os.spawnlp(模式,文件,... ) | 在新进程中执行程序路径。os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null') |
133 | 进程 | os.spawnlpe(模式,文件,...,env ) | 在新进程中执行程序路径。 |
134 | 进程 | os.spawnv(模式,路径,args ) | 在新进程中执行程序路径。 |
135 | 进程 | os.spawnve(mode,path,args,env ) | 在新进程中执行程序路径。 |
136 | 进程 | os.spawnvp(模式,文件,args ) | 在新进程中执行程序路径。 |
137 | 进程 | os.spawnvpe(模式,文件,args,env ) | 在新进程中执行程序路径。os.spawnvpe(os.P_WAIT, 'cp', ['cp', 'index.html', '/dev/null'], os.environ) |
138 | 进程 | os.startfile(路径[,操作] ) | 使用其关联的应用程序启动文件。 |
139 | 进程 | os.system(cmd) | 运行shell命令;os.system('ls -al')#获取隐藏文件 |
140 | 进程 | os.times() | 返回当前的全局进程时间。os.times() #nt.times_result(user=7.004444899999999, |
141 | 进程 | system=6.552042, children_user=0.0, children_system=0.0, elapsed=0.0) | |
142 | 进程1 | 处理system(),wait()和waitpid()返回的状态信息: | |
143 | 进程1 | os.WCOREDUMP(status) | 如果一个core文件被创建,则返回True,否则返回False。 |
144 | 进程1 | os.WIFCONTINUED(status) | 如果一个进程被停止过,并且继续执行,则返回True,否则返回False。 |
145 | 进程1 | os.WIFSTOPPED(status) | 如果子进程被停止过,则返回True,否则返回False。 |
146 | 进程1 | os.WIFSIGNALED(status) | 如果进程由于信号而退出,则返回True,否则返回False。 |
147 | 进程1 | os.WIFEXITED(status) | 如果进程是以exit()方式退出的,则返回True,否则返回False。 |
148 | 进程1 | os.WEXITSTATUS(status) | 如WIFEXITED(status)返回True,则返回一整数,该整数是exit()调用参数。否则返回值是未定义 |
149 | 进程1 | os.WSTOPSIG(status) | 返回导致进程停止的信号 |
150 | 进程1 | os.WTERMSIG(status) | 返回导致进程退出的信号 |
2.os实例
# 实例1:
os.getcwd() # 'C:\\python37' C:\python37\Lib
os.chdir(r'C:\python36\test_chdir') #修改当前工作目录成功返回True
os.system('mkdir today') # Run the command mkdir in the system shell
# ------------------------------------------------------------------------------
# 实例2.1:查看指定路径中所有文件,文件夹
import os
for root, dirs, files in os.walk(r"D:\A"):
try:
print('directory < ' + root + ' >')
for d in dirs:
print(d)
for f in files:
print(f)
except os.OSError as e:
print(os.strerror(e.errno))
"""
directory < D:\A >
AA
directory < D:\A\AA >
test.txt
"""
# ------------------------------------------------------------------------------
# 实例2.2:查看指定路径中所有文件,文件夹
for root,dirs,files in os.walk(r"D:\A",topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
"""
D:\A\AA\test.txt
D:\A\AA
"""
# ------------------------------------------------------------------------------
# 实例3.1:标准文件读写
import os
os.makedir('pathdir') #创建路径
os.makedirs(r'd:\pathdir')#创建路径
f = open("text.txt",'w+')#直接打开一个文件,如果文件不存在就创建文件
f.read([size]) #size为读取的长度,以byte为单位
f.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
f.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list
# 如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
f.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
f.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。不会在每行后面加上任何东西。
f.close() #关闭文件。
f.flush() #把缓冲区的内容写入硬盘
f.fileno() #返回一个长整型的”文件标签“
f.isatty() #文件是否是一个终端设备文件(unix系统中的)
f.tell() #返回文件操作标记的当前位置,以文件的开头为原点
f.next() #返回下一行,并将文件操作标记位移到下一行。
f.seek(offset[,whence]) #文件定位到offset位置(whence=0,1,2开头,当前,末尾为原点进行计算)
# 如文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
f.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。
# 如size比文件大小还大,可能不改变文件,也可能用0或随机内容把文件补到相应的大小
# ------------------------------------------------------------------------------
实例3.2:文件描述符读写文件
# fd读写标志:
"""
os.O_RDONLY 只读
os.O_WRONLY 只写
os.O_RDWR 读写
os.O_APPEND 附加;写操作前将文件指针移动到文件末尾
os.O_CREAT 创建文件,写入文件存在无效
os.O_EXCL 如文件存在返回错误值。仅适用与_O_CREAT一起使用时
os.O_TRUNC 文件内容清除
"""
import os
from datetime import datetime as dt
path='D:\\A\\AA\\test.txt'
fd = os.open(path,os.O_RDWR|os.O_APPEND|os.O_CREAT)# 获取文件对象
print('fd=',fd)# fd=<_io.TextIOWrapper name='text.txt' mode='w+' encoding='cp936'>
# 写入字符串
str1 = "current time is "+dt.now().strftime("%Y-%m-%d %H:%M:%S")+'\n'
ret = os.write(fd,bytes(str1, 'UTF-8'))#写入的位数为ret=36
# 读文件
os.lseek(fd, 0, 0) #移动文件指针到文件开头
result=os.read(fd,1000)
print(result.decode())
# 关闭文件
os.close(fd)
3.备注 退出状态
Name | Remark |
os.EX_OK | 正常退出 |
os.EX_USAGE | 命令执行不正确,如命令参数错误 |
os.EX_DATAERR | 输入数据有误 |
os.EX_NOINPUT | 输入文件不存在或者不可读 |
os.EX_NOUSER | 指定的用户不存在 |
os.EX_NOHOST | 指定的主机id不存在 |
os.EX_UNAVAILABLE | 请求的服务不可用 |
os.EX_SOFTWARE | 内部软件错误 |
os.EX_OSERR | 操作系统错误 |
os.EX_OSFILE | 系统文件不存在 |
os.EX_CANTCREAT | 无法创建指定的输出文件 |
os.EX_IOERR | 在进行I/O操作时出错 |
os.EX_PROTOCOL | 协议切换操作非法,或者协议切换不可用 |
os.EX_NOPERM | 没有权限执行该操作 |
os.EX_CONFIG | 配置错误 |
方法 | 说明 |
path=r'C:\Users\Administrator\A\AA\test.txt' | |
ntpath.splitunc(path) | 把路径分割为加载点与文件# ('', 'C:\\Users\\Administrator\\A\\AA\\test.txt') |
os.path.abspath(path) | 相对路径转绝对路径'./boys'#相对 |
os.path.basename(path) | 返回文件名 'test.txt' |
os.path.commonpath([]) | 返回最长公共子路径;['/usr/lib', '/usr/local/lib']#'\\usr'格式相同切非空否则异常 |
os.path.commonprefix([]) | 返回共有最长路径前缀['/usr/lib', '/usr/local/lib']#'/usr/l' |
os.path.dirname(path) | 返回文件路径(不含文件名)'C:\\Users\\Administrator\\A\\AA' |
os.path.exists(filepath[name]) | 判断是否存在文件或目录#True 如未授os.stat()文件权限返回Fasle(即使存在) |
os.path.expanduser(path) | 把path中包含的"~"和"~user"转换成用户目录 |
os.path.expandvars(path) | 根据环境变量的值替换path中包含的"$name"和"${name}" |
os.path.getatime(path) | 返回最近访问时间(浮点型秒数)无则抛异常#1559889034.6349573 |
os.path.getctime(path) | 路径的创建时间;无则抛OSError#1559889034.6349573 |
os.path.getmtime(path) | 获取文件的修改时间#1559890195.4933546 |
os.path.getsize(path) | 返回文件大小字节如是目录返回0,无则抛OSError |
os.path.isabs(path) | 判断是否为绝对路径#True |
os.path.isdir(path) | 检测是否是文件夹#False |
os.path.isfile(path) | 判断路径是否为文件#True |
os.path.islink(path) | 判断路径是否为链接#False |
os.path.ismount(path) | 判断路径是否为挂载点 |
os.path.join(path1[, path2[, ...]]) | 目录文件名合成一个路径os.path.join('C:\\','A\\','test.txt')#'C:\\A\\test.txt' |
os.path.lexists(path) | 路径存在则返回True,路径损坏也返回True#True |
os.path.normcase(path) | 规范化路径名小写和反斜杠 #'c:\\users\\administrator\\a\\aa\\test.txt'异常抛出错误 |
os.path.realpath(path) | 返回规范路径,消除路径中遇到的任何符号链接(如果操作系统支持它们)。 |
os.path.relpath(path[, start]) | 从start开始计算相对路径os.path.relpath(path,'C:\\Users\\Administrator') |
'A\\AA\\test.txt' | |
os.path.samefile(path1, path2) | 判断目录或文件是否相同 |
os.path.sameopenfile(fp1, fp2) | 返回True如果文件描述符fp1和fp2指向同一文件 |
os.path.samestat(stat1, stat2) | 判断stat tuple stat1和stat2是否指向同一个文件 |
os.path.split(path) | 分割文件名与目录 #('C:\\Users\\Administrator\\A\\AA', 'test.txt') |
os.path.splitdrive(path) | 回驱动器名和路径 #('C:', '\\Users\\Administrator\\A\\AA\\test.txt') |
os.path.splitext(path) | 分离文件名和扩展名 #('C:\\Users\\Administrator\\A\\AA\\test', '.txt') |
os.path.supports_unicode_filenames | 设置是否支持unicode路径名#True |
os.path.walk(path, visit, arg) | 遍历path进入每个目录都调用visit(arg, dirname, names),目录名,所有文件名 |