Python 的标准库中的 os 模块包含普遍的操作系统功能。这个模块的作用主要是提供与平台无关的操作系统接口功能。也就是说 os 模块能够处理平台间的差异问题,使得编写好的程序无需做任何改动就能在另外的平台上运行。当然,该模块在实际使用时要依赖操作系统的功能,受限于各个平台的不同实现,有些功能并不通用。此外,有些特定的功能还得使用特定的模块,如:如果只是想读或写文件,请使用 open();如果想操作文件路径,则使用 os.path 模块;如果想在命令行中,读入所有文件的所有行,可以使用 fileinput 模块;使用 tempfile 模块创建临时文件和文件夹;更高级的文件和文件夹处理,需要使用 shutil 模块。如果想要了解 os 模块的所有内容,可以使用 dir(os) 方法查看。

模块变量

os.error

内建 OSError exception 的别名。

os.name

导入依赖操作系统模块的名字,指示你正在使用的平台。下面是目前被注册的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'.

os.environ

一个 mapping 对象表示环境。例如:environ['HOME'],表示的你自己 home 文件夹的路径(某些平台支持,windows 不支持) ,它与 C 中的 getenv("HOME") 一致。

这个 mapping 对象在 os 模块第一次导入时被创建,一般在 python 启动时,作为 site.py 处理过程的一部分。在这一次之后改变 environment 不 影响 os.environ,除非直接修改 os.environ。

注: putenv() 不会直接改变 os.environ,所以最好是修改 os.environ。

注: 在一些平台上,包括 FreeBSD 和 Mac OS X,修改 environ 会导致内存泄露。参考 putenv() 的系统文档。

如果没有提供 putenv(),mapping 的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的 environment。

如果这个平台支持 unsetenv() 函数,你可以删除 mapping 中的项目。当从 os.environ 使 pop() 或 clear() 删除一个项目时,unsetenv() 会自动被调用(版本2.6)。

os.curdir

操作系统用此常数字符串作为当前文件夹的引用。

os.pardir

操作系统用此常数字符串作为父文件夹的引用。

os.sep

系统使用此字符来分割路径。

os.altsep

系统使用另外一个字符来分割路径,如果只有一个分割字符存在,则是 None。

os.extsep

分割基本文件名和扩展名的字符。

os.pathsep

系统使用此字符来分割搜索路径(像PATH),例如 POSIX 上的 ':',Windows上的 ';',也可以通过 os.path。

os.defpath

默认的搜索路径用作 exec*pspawn*p 如果环境没有 'PATH'。 也可以通过 os.path。

os.linesep

当前平台上的换行符字符串. 在 POSIX 上是 '\n',或者在 Windows 上是 '\r\n' . 不要使用 os.linesep 作为换行符,当写入文本文件时 (默认); 在所有平台上使用 '\n' 代替,这样便于兼容处理。

os.devnull

空设备的文件路径。例如:POSIX 上的 '/dev/null' . 也可以通过 os.path。

文件和文件夹

os.access(path, mode)

使用现在的 uid/gid 尝试访问 path。注:大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试,如果用户有权访问 path。 mode 为 F_OK,测试存在的 path,或者它可以是包含 R_OK, W_OK 和 X_OK 或者 R_OK, W_OK 和 X_OK 其中之一或者更多。如果允许访问返回 True , 否则返回 False。查看 Unix 手册 access(2) 获取更多信息。在 unix,Windows 中有效。

注: 使用 access() 去测试用户是否授权. 在实际使用 open() 打开一个文件前测试会创建一个安全漏洞前 , 因为用户会利用这短暂时间在检测和打开这个文件去修改它。即使 access() 表明它将 succeed,但 I/O 操作也可能会失败, 如网络文件系统。

os.F_OK  作为 access() 的 mode 参数,测试 path 是否存在

os.R_OK  包含在 access() 的 mode 参数中 , 测试 path 是否可读

os.W_OK  包含在 access() 的 mode 参数中 ,测试 path 是否可写

os.X_OK  包含在 access() 的 mode 参数中 ,测试 path 是否可执行

os.chdir(path)

改变当前工作目录。在 unix,Windows 中有效。

os.fchdir(fd)

通过打开的文件描述符改变当前工作目录。在 unix中有效,请查看相关文档。

os.getcwd()

返回当前工作目录的字符串, 在 unix,Windows 中有效。

os.getcwdu()

返回一个当前工作目录的 Unicode 对象。在 unix,Windows 中有效。

os.chroot(path)

改变根目录为 path。在 unix 中有效,请查看相关文档。

os.chmod(path, mode)

改变 path 的 mode 到数字 mode。在 unix,Windows 中有效。mode 为下面中的一个 (在 stat 模块中定义)或者 bitwise 或者是以下的组合:

?stat.S_ISUID
?stat.S_ISGID
?stat.S_ENFMT
?stat.S_ISVTX
?stat.S_IREAD
?stat.S_IWRITE
?stat.S_IEXEC
?stat.S_IRWXU
?stat.S_IRUSR
?stat.S_IWUSR
?stat.S_IXUSR
?stat.S_IRWXG
?stat.S_IRGRP
?stat.S_IWGRP
?stat.S_IXGRP
?stat.S_IRWXO
?stat.S_IROTH
?stat.S_IWOTH
?stat.S_IXOTH

注: 尽管 Windows 支持 chmod(),你只可以使用它设置只读 flag (通过 stat.S_IWRITE 和 stat.S_IREAD 常数或者一个相对应的整数)。所有其它的 bits 都忽略了。

os.chown(path, uid, gid)

改变 path 的所属用户和组。在 unix 中有效,请查看相关文档。

os.link(source, link_name)

在 unix 中有效,请查看相关文档。

os.listdir(path)

返回 path 指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。它不包括 '.' 和 '..' 即使它在文件夹中。在 unix,Windows 中有效。

Changed in version 2.3: 在 Windows NT/2k/XP 和 Unix, 如果文件夹是一个 Unicode object, 结果将是 Unicode objects 列表。不能解码的文件名将仍然作为 string objects 返回.

os.lstat(path)

像 stat(),但是没有符号链接。 这是 stat() 的别名 在某些平台上,例如 Windows。

os.mkfifo(path[, mode])

创建命名管道。在 unix 中有效,请查看相关文档.。

os.mknod(filename[, mode=0600, device])

创建一个名为 filename 文件系统节点(文件,设备特别文件或者命名 pipe)。 mode 指定创建或使用节点的权限, 组合 (或者 bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (这些常数在 stat 模块)。对于 stat.S_IFCHR 和 stat.S_IFBLK,设备定义了最新创建的设备特殊文件 (可能使用 os.makedev()),其它都将忽略。新增 version 2.3。

os.major(device)

从原始的设备号中提取设备 major 号码 (使用 stat 中的 st_dev 或者 st_rdev field)。新增 version 2.3。

os.minor(device)

从原始的设备号中提取设备 minor 号码 (使用 stat 中的 st_dev 或者 st_rdev field )。新增 version 2.3。

os.makedev(major, minor)

以 major 和 minor 设备号组成一个原始设备号。新增 version 2.3.

os.mkdir(path[, mode])

以数字 mode 的 mode 创建一个名为 path 的文件夹。默认的 mode 是 0777 (八进制)。 在有些平台上, mode 是忽略的。当使用时,这当前的掩码值是 first masked out。 在 unix,Windows中有效。也可以用于创建临时文件夹,查看 tempfile模块 tempfile.mkdtemp() 函数。

os.makedirs(path[, mode])

递归文件夹创建函数。像 mkdir(),但创建的所 有intermediate-level 文件夹需要包含子文件夹。抛出一个 error exception 如果子文件夹已经存在或者不能创建。 默认的 mode 是 0777 (八进制)。在有些平台上, mode 是忽略的。当使用时。这当前的掩码值是 first masked out。

os.pathconf(path, name)

在 unix 中有效,请查看相关文档。

os.pathconf_names

在 unix 中有效,请查看相关文档。

os.readlink(path)

返回符号链接所指向的文件。在 unix 中有效,请查看相关文档。

os.remove(path)

删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。 这和下面的unlink()函数文档是一样的。在Windows,尝试删除一个正在使用的文件将抛出一个exception;在Unix,directory入口会被删除,但分配给文件的存储是无效的,直到原来的文件不再使用。 在unix,Windows中有效。

os.removedirs(path)

递归删除directorie。 像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。例如, os.removedirs('foo/bar/baz') 将首先删除 'foo/bar/baz', 然后删除 'foo/bar' 和 'foo' 如果它们是空的。 如果子文件夹不能被成功删除,将抛出OSError。

os.rename(src, dst)

重命名file或者directory src 到dst.如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file,如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件。 在unix,Windows中有效。

os.renames(old, new)

递归重命名文件夹或者文件。像rename()。新增version 1.5.2.

os.rmdir(path)

删除path文件夹. 仅当这文件夹是空的才可以, 否则, 抛出OSError. 要删除整个文件夹树, 可以使用shutil.rmtree(). 在unix,Windows中有效。

os.stat(path)

执行一个stat()系统调用在给定的path上。返回值是一个对象,属性与stat结构成员有关: st_mode (保护位), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (所有用户的id), st_gid (所有者group id), st_size (文件大小, 以位为单位), st_atime (最近访问的时间), st_mtime (最近修改的时间), st_ctime (依赖于平台;在Unix上是metadata最近改变的时间,或者在 Windows上是创建时间):

import os
statinfo = os.stat('somefile.txt')
print statinfo

如果stat_float_times()返回True,time值是floats,以second进行计算。 一秒的小数部分也会显示出来, 如果系统支持. 在Mac OS, 时间常常是 floats。查看 stat_float_times() 获取更多信息。

在一些Unix系统上(例如 Linux), 下面的属性也许是有效的: st_blocks (为文件分配了多少块), st_blksize (文件系统blocksize), st_rdev (设备型号如果是一个inode设备). st_flags (用户为文件定义的flags)。

在unix,Windows中有效。

os.stat_float_times([newvalue])

决定stat_result是否以float对象显示时间戳。

os.statvfs(path)

在unix中有效,请查看相关文档.。

os.symlink(source, link_name)

创建一个符号链接。在unix中有效,请查看相关文档。

os.tempnam([dir[, prefix]])

为创建一个临时文件返回一个唯一的path。在Windows使用TMP,依赖于使用的C库。在unix,Windows中有效。

警告: 使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替。

os.tmpnam()

为创建一个临时文件返回一个唯一的path。在unix,Windows中有效。

*Warning: *使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替.

os.TMP_MAX

tmpnam() 将产生唯一名字的最大数值。

os.unlink(path)

删除 file路径. 与remove()相同; 在unix,Windows中有效。

os.utime(path, times)

返回指定的path文件的访问和修改的时间。如果时间是 None, 则文件的访问和修改设为当前时间 。 否则, 时间是一个 2-tuple数字, (atime, mtime) 用来分别作为访问和修改的时间。在unix,Windows中有效。

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

输出在文件夹中的文件名通过在树中游走,向上或者向下。在根目录下的每一个文件夹(包含它自己), 产生3-tuple (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

dirpath是一个字符串, directory的路径. dirnames在dirpath中子文件夹的列表 (不包括 '.' '..')。filenames 文件是在dirpath不包含子文件夹的文件名的列表. 注: 列表中的names不包含path.为获得dirpath中的一个文件或者文件夹的完整路径 (以顶目录开始)或者, 操作 os.path.join(dirpath, name)。

如果optional参数topdown为True或者not指定, 一个directory的3-tuple将比它的任何子文件夹的3-tuple先产生 (directories 自上而下)。如果topdown为 False, 一个directory的3-tuple将比它的任何子文件夹的3-tuple后产生 (directories 自下而上)。

当topdown为True,调用者可以修改列表中列出的文件夹名字(也可以使用del或者slice), walk() 仅仅递归每一个包含在dirnames中的子文件夹; 可以减少查询, 利用访问的特殊顺序,或者甚至 告诉 walk() 关于文件夹的创建者或者重命名在它重新walk()之前。修改文件名当topdown 为False时是无效的, 因为在bottom-up模式中在dirnames中的directories比dirpath 它自己先产生 。

默认listdir()的errors将被忽略。 如果optional参数onerror被指定,它应该是一个函数; 它调用时有一个参数, 一个OSError实例. 报告这错误后,继续walk,或者抛出exception终止walk。注意filename是可用的的 ,exception对象的filename属性。

默认, walk() 不会进入符号链接 。新增version 2.6。

获取进程ID

os.ctermid()

返回进程控制终端的文件名。在unix中有效,请查看相关文档.。

os.getegid()

返回当前进程有效的group的id。对应于当前进程的可执行文件的"set id "的bit位。在unix中有效,请查看相关文档。

os.geteuid()

返回当前进程有效的user的id。在unix中有效,请查看相关文档。

s.getgid()

返回当前进程当前group的id。在unix中有效,请查看相关文档。

os.getgroups()

返回当前进程支持的groups的id列表。在unix中有效,请查看相关文档。

os.getlogin()

返回进程控制终端登陆用户的名字。在大多情况下它比使用environment变量LOGNAME来得到用户名,或使用pwd.getpwuid(os.getuid())[0] 得到当前有效用户id的登陆名更为有效。在unix中有效,请查看相关文档。

os.getpgid(pid)

返回pid进程的group id。如果pid为0,返回当前进程的group id。在unix中有效,请查看相关文档。

os.getpgrp()

返回当前进程组的id。在unix中有效,请查看相关文档。

os.getpid()

返回当前进程的id。在unix,Windows中有效。

os.getppid()

返回当前父进程的id。在unix中有效,请查看相关文档。

os.getuid()

返回当前当前进程用户的id。在unix中有效,请查看相关文档。

环境变量

os.getenv(varname[, value])

返回environment变量varname的值,如果value不存在,默认为None。在大多版本的unix,Windows中有效。

os.putenv(varname, value)

设置varname环境变量为value值。此改变影响以os.system(), popen() 或 fork()和execv()启动的子进程。在大多版本的unix,Windows中有效。

当支持putenv()时,在os.environ分配项目时,自动调用合适的putenv()。然而,调用putenv() 不会更新os.environ,所以直接设置os.environ的项。

设置进程ID

os.setegid(egid)

设置当前进程有效组的id。在unix中有效,请查看相关文档。

os.seteuid(euid)

设置当前进程有效用户的id。在unix中有效,请查看相关文档。

os.setgid(gid)

设置当前进程组的id。在unix中有效,请查看相关文档。

os.setgroups(groups)

设置当前进程支持的groups id列表。groups必须是个列表,每个元素必须是个整数,这个操作只对超级用户有效,在unix中有效,请查看相关文档。

os.setpgrp()

调用system的setpgrp()或setpgrp(0, 0)() ,依赖于使用的是哪个版本的system。 请查看 Unix手册. 在unix中有效,请查看相关文档。 os.setpgid(pid, pgrp) 调用system的setpgid()设置pid进程group的id为pgrp.请查看 Unix手册. 在unix中有效,请查看相关文档。

os.setreuid(ruid, euid)

设置当前process当前 和有效的用户id。 在unix中有效,请查看相关文档。

os.setregid(rgid, egid)

设置当前process当前 和有效的组id。在unix中有效,请查看相关文档。

os.getsid(pid)

调用system的getsid()。 请查看 Unix手册. 在unix中有效,请查看相关文档。

os.setsid()

调用system的setsid()。请查看 Unix手册. 在unix中有效,请查看相关文档。

os.setuid(uid)

设置当前user id。在unix中有效,请查看相关文档。

程序返回状态

os.strerror(code)

返回程序中错误code的错误信息。在某些平台上,当给一个未知的code,strerror()返回NULL,将抛出ValueError。在unix,Windows中有效。

文件相关操作

os.umask(mask)

设置当前权限掩码,同时返回先前的权限掩码。在unix,Windows中有效。

os.fdopen(fd[, mode[, bufsize]])

返回一个文件描述符号为fd的打开的文件对象。mode和bufsize参数,和内建的open()函数是同一个意思。在unix,Windows中有效。 mode必须以'r', 'w',或者'a'开头, 否则抛出ValueError。以'a'开头的mode, 文件描述符中O_APPEND位已设置。

os.popen(command[, mode[, bufsize]])

给或从一个command打开一个管理。返回一个打开的连接到管道文件对象,文件对象可以读或写,在于模式是'r'(默认) 或'w',bufsize参数,和内建的open()函数是同一个意思。 command返回的状态 (在wait()函数中编码) 和调用文件对象的close()返回值一样, 除非返回值是0(无错误终止), 返回None 。 在unix,Windows中有效。在 2.6版本中已抛弃。使用subprocess模块。

os.tmpfile()

返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。在unix,Windows中有效。

文件描述符操作

os.close(fd)

关闭文件描述符fd. 在unix,Windows中有效。

os.dup(fd)

返回文件描述符fd的cope. 在unix,Windows中有效。

os.dup2(fd, fd2)

复制文件描述符fd到fd2, 如果有需要首先关闭fd2. 在unix,Windows中有效。

os.fchmod(fd, mode)

改变文件描述符为fd的文件 'mode' 为mode.查看chmod()文档 中mode的值。在unix中有效,请查看相关文档。version 2.6中新增。

os.fchown(fd, uid, gid)

改变文件描述符为fd的文件的所有者和group的id为uid和gid。 如果不想它们中的一个, 就设置为-1。在unix中有效,请查看相关文档。version 2.6中新增。

os.fdatasync(fd)

强制将文件描述符为fd的文件写入硬盘。不强制更新metadata。在unix中有效,请查看相关文档。注:在MacOS中无效。

os.fpathconf(fd, name)

返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。一些平台也定义了一些额外的名字。这些名字在主操作系统上pathconf_names的字典中。对于不在pathconf_names中的配置变量,传递一个数字作为名字,也是可以接受的。 在unix中有效,请查看相关文档。

如果name是一个字符串或者未知的,将抛出ValueError。如果name是一个特别的值,在系统上不支持,即使它包含在pathconf_names中,将会抛出错误数字为errno.EINVAL的OSError。

os.fstat(fd)

返回文件描述符fd的状态,像stat()。在unix,Windows中有效。 os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系统的信息,像 statvfs()。在unix中有效,请查看相关文档。

os.fsync(fd)

强制将文件描述符为fd的文件写入硬盘。在Unix, 将调用fsync()函数;在Windows, 调用 _commit() 函数。

如果你准备操作一个Python文件对象f, 首先f.flush(),然后os.fsync(f.fileno()), 确保与f相关的所有内存都写入了硬盘.在unix,Windows中有效。

os.ftruncate(fd, length)

裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。在unix中有效,请查看相关文档。

os.isatty(fd)

如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。 在unix中有效,请查看相关文档。

os.lseek(fd, pos, how)

设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效。

os.write(fd, str)

写入字符串到文件描述符 fd中. 返回实际写入的字符串长度. 在unix,Windows中有效。

注: 这函数是打算为低层 I/O服务的 ,同时必须应用在os.open()或者pipe()函数返回的文件描述符. 读取内建函数open()或者by popen()或者fdopen(),或者sys.stdin返回的一个“文件对象” , 使用它的read()或者readline()方法

下面的常数是open()函数的 flags参数选项. 它们可以使用 bitwise合并或者operator |。它们中的一些常数并不是在所有平台都有效. 它们更多使用请查看相关资料。

os.O_RDONLY
os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL
os.O_TRUNC

这些常数在Unix and Windows上有效。

os.O_DSYNC
os.O_RSYNC
os.O_SYNC
os.O_NDELAY
os.O_NONBLOCK
os.O_NOCTTY
os.O_SHLOCK
os.O_EXLOCK

这些常数仅在Unix上有效.

os.O_BINARY
os.O_NOINHERIT
os.O_SHORT_LIVED
os.O_TEMPORARY
os.O_RANDOM
os.O_SEQUENTIAL
os.O_TEXT

这些常数仅在 Windows上有效.

os.O_ASYNC
os.O_DIRECT
os.O_DIRECTORY
os.O_NOFOLLOW
os.O_NOATIME

这些常数是 GNU扩展,如果没有在C库声明刚没有.

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

lseek()函数的参数。 它们的值分别是 0, 1,和 2。在Unix and Windows上有效。版本2.5新增。

OS子模块:Path 模块

os.path.abspath(path)       # 返回绝对路径
os.path.basename(path)      # 返回文件名
os.path.commonprefix(list)  # 返回 list(多个路径)中,所有 path 共有的最长的路径
os.path.dirname(path)       # 返回文件路径
os.path.exists(path)        # 路径存在则返回 True,路径损坏返回 False
os.path.lexists             # 路径存在则返回 True,路径损坏也返回 True
os.path.expanduser(path)    # 把 path 中包含的 "~" 和 "~user" 转换成用户目录
os.path.expandvars(path)    # 根据环境变量的值替换 path 中包含的 $name 和 ${name}
os.path.getatime(path)      # 返回最后一次进入此 path 的时间
os.path.getmtime(path)      # 返回在此 path 下最后一次修改的时间
os.path.getctime(path)      # 返回 path 的大小
os.path.getsize(path)       # 返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)         # 判断是否为绝对路径
os.path.isfile(path)        # 判断路径是否为文件
os.path.isdir(path)         # 判断路径是否为目录
os.path.islink(path)        # 判断路径是否为链接
os.path.ismount(path)       # 判断路径是否为挂载点
os.path.join(path1[, path2[, ...]])   # 把目录和文件名合成一个路径
os.path.normcase(path)      # 转换 path 的大小写和斜杠
os.path.normpath(path)      # 规范 path 字符串形式
os.path.realpath(path)      # 返回 path 的真实路径
os.path.relpath(path[, start])   # 从 start 开始计算相对路径
os.path.samefile(path1, path2)   # 判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)   # 判断 fp1 和 fp2 是否指向同一文件
os.path.samestat(stat1, stat2)   # 判断 stat tuple stat1 和stat2 是否指向同一个文件
os.path.split(path)         # 把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path)    # 一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path)      # 分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)      # 把路径分割为加载点与文件
os.path.walk(path, visit, arg)  # 遍历 path,进入每个目录都调用 visit 函数,visit 函数必须有 3 个参数(arg, dirname, names),dirname 表示当前目录的目录名,names 代表当前目录下的所有文件名,args 则为 walk 的第三个参数
os.path.supports_unicode_filenames  # 设置是否支持 unicode 路径名

后序

本文内容整理自 AllenWDK 等的博客,仅用作工作和学习中的参考,版权归原作者所有。本文所列内容并不全面,更或者还存在错误和缺陷。在以后的工作和学习中,将继续更新和完善本文内容。