非常教程

Python参考手册

文件和目录访问 | File & Directory Access

os.path

该模块在路径名上实现了一些有用的功能。要读取或写入文件open(),请参阅os模块,以及访问文件系统。

注意

在Windows上,许多这些功能不能正确支持UNC路径名。splitunc()ismount()正确处理它们。

与unix shell不同,Python不会执行任何自动路径扩展。当应用程序需要类似shell的路径扩展时expanduser()expandvars()可以显式调用诸如和的函数。(另见glob模块。)

注意

由于不同的操作系统具有不同的路径名称约定,因此标准库中有该模块的几个版本。该os.path模块始终是适用于Python运行的操作系统的路径模块,因此可用于本地路径。但是,如果要操纵始终采用不同格式之一的路径,还可以导入和使用各个模块。它们都具有相同的界面:

  • posixpath 对于UNIX风格的路径
  • ntpath 为Windows路径
  • macpath 适用于旧式MacOS路径
  • os2emxpath 适用于OS / 2 EMX路径

os.path.abspath(path)

返回路径名路径的归一化绝对版本。在大多数平台上,这相当于normpath()如下调用函数:normpath(join(os.getcwd(), path))

1.5.2版本的新功能。

os.path.basename(path)

返回路径名路径的基本名称。这是通过传递函数路径返回的对中的第二个元素split()。请注意,该函数的结果与Unix 基本程序不同,其中基名'/foo/bar/'回报'bar',该basename()函数返回一个空字符串('')。

os.path.commonprefix(list)

返回列表中所有路径前缀的最长路径前缀(逐个字符)。如果列表为空,则返回空字符串('')。请注意,这可能会返回无效的路径,因为它一次处理一个字符。

os.path.dirname(path)

返回路径名路径的目录名称。这是通过传递函数路径返回的第一个元素split()

os.path.exists(path)

如果路径指向现有路径,则返回True。返回False已损坏的符号链接。在某些平台上,如果未授予os.stat()对所请求的文件执行权限(即使路径实际存在),此函数可能会返回False

os.path.lexists(path)

True如果路径指向现有路径,则返回。返回True已损坏的符号链接。相当于exists()缺乏平台os.lstat()

2.4版本中的新功能。

os.path.expanduser(path)

在Unix和Windows上,返回该参数的初始组件~~user由该用户的主目录替换。

在Unix上,如果设置了初始~值,则由环境变量替换HOME; 否则通过内置模块在密码目录中查找当前用户的主目录pwd。初始~user值直接在密码目录中查找。

在Windows中,HOME而且USERPROFILE如果设置将被使用,否则的组合HOMEPATHHOMEDRIVE将被使用。~user通过剥离上面创建的用户路径中的最后一个目录组件来处理初始化。

如果展开失败或路径不以波形开始,则路径将保持不变。

os.path.expandvars(path)

返回扩展了环境变量的参数。子表格的子字符串$name或被${name}环境变量名称的值替换。格式错误的变量名称和对不存在的变量的引用保持不变。

在Windows上,除了$name{name},还支持扩展%name%$

os.path.getatime(path)

返回上次访问路径的时间。返回值是一个给出历元以来秒数的数字(参见time模块)。提高os.error如果文件不存在或无法访问。

1.5.2版本的新功能。

版本2.3中更改:如果os.stat_float_times()返回True,则结果为浮点数。

os.path.getmtime(path)

返回最后修改路径的时间。返回值是一个给出历元以来秒数的数字(参见time模块)。提高os.error如果文件不存在或无法访问。

1.5.2版本的新功能。

版本2.3中更改:如果os.stat_float_times()返回True,则结果为浮点数。

os.path.getctime(path)

返回系统的ctime,在某些系统上(如Unix)是最后一次元数据更改的时间,而在另一些系统(如Windows)上则是创建路径的时间。返回值是一个给出历元以来秒数的数字(参见time模块)。提高os.error如果文件不存在或无法访问。

2.3版本的新功能。

os.path.getsize(path)

返回路径的大小(以字节为单位)。提高os.error如果文件不存在或无法访问。

1.5.2版本的新功能。

os.path.isabs(path)

True如果路径是绝对路径名,则返回。在Unix上,这意味着它以斜线开始,在Windows上,它在切断潜在驱动器盘符后以(后退)斜杠开始。

os.path.isfile(path)

True如果路径是现有的常规文件,则返回。这是继符号链接,这样既islink()并且isfile()可以为相同的路径是正确的。

os.path.isdir(path)

True如果路径是现有目录,则返回。这是继符号链接,这样既islink()并且isdir()可以为相同的路径是正确的。

os.path.islink(path)

True如果路径指向一个符号链接的目录条目,则返回。总是False如果Python运行时不支持符号链接。

os.path.ismount(path)

True如果路径名路径装载点,则返回:装入不同文件系统的文件系统中的一个点。功能检查是否路径的母公司path/..,是一个不同的设备比路径,或是否path/..路径指向相同的设备在相同的i节点-这应该检测挂载点所有的Unix和POSIX变体。

os.path.join(path, *paths)

智能地加入一个或多个路径组件。返回值是路径*路径的任何成员的连接,每个除了最后一个非空部分之后,都有一个目录分隔符(os.sep),这意味着如果最后一部分为空,结果将仅在分隔符中结束。如果某个组件是绝对路径,则所有先前的组件都将被丢弃,并从绝对路径组件继续加入。

在Windows上,当遇到绝对路径组件(例如,r'\foo')时,驱动器号不会重置。如果组件包含驱动器号,则以前的所有组件都将被丢弃,并重置驱动器号。请注意,由于每个驱动器都有当前目录,因此os.path.join("c:", "foo")表示相对于drive C:c:foo)上当前目录的路径,而不是c:\foo

os.path.normcase(path)

规范化路径名的情况。在Unix和Mac OS X上,这将返回路径不变; 在不区分大小写的文件系统上,它将路径转换为小写。在Windows上,它也将正斜杠转换为反斜杠。

os.path.normpath(path)

通过折叠冗余分离器和上一级引用正常化的路径名,这样A//BA/B/A/./BA/foo/../B一切变得A/B。此字符串操作可能会更改包含符号链接的路径的含义。在Windows上,它将正斜杠转换为反斜杠。要标准化案例,请使用normcase()

os.path.realpath(path)

返回指定文件名的规范路径,消除路径中遇到的任何符号链接(如果它们受操作系统支持)。

2.2版本中的新功能。

os.path.relpath(path[, start])

从当前目录或从可选的开始目录中将相关文件路径返回到路径。这是一个路径计算:不访问文件系统来确认路径开始的存在或性质。

开始默认为os.curdir

可用性:Windows,Unix。

2.6版本中的新功能。

os.path.samefile(path1, path2)

返回True如果两个路径名参数指的是相同的文件或目录(由设备号和i节点号所示)。如果os.stat()任一路径名称上的调用失败,请引发异常。

可用性:Unix。

os.path.sameopenfile(fp1, fp2)

返回True如果文件描述符FP1FP2指的是同一个文件。

可用性:Unix。

os.path.samestat(stat1, stat2)

返回True如果统计的元组STAT1STAT2指的是同一个文件。可能已经返回这些结构的os.fstat()os.lstat()os.stat()。这个函数实现samefile()和使用的底层比较sameopenfile()

可用性:Unix。

os.path.split(path)

将路径名路径拆分为一对,(head, tail)其中tail是最后一个路径名组件,head是导致该路径名的所有内容。在尾部部分永远不会包含一个斜杠; 如果路径以斜线结尾,则尾部将为空。如果路径中没有斜线,则头部将是空的。如果路径为空,则头部尾部都是空的。除非是根部(仅限一个或多个斜线),否则尾部的斜线会从头部剥离。在所有情况下,join(head, tail)返回到路径相同位置的路径(但字符串可能不同)。另请参阅函数dirname()basename()

os.path.splitdrive(path)

将路径名路径拆分成一对(drive, tail),其中驱动器是驱动器规格或空字符串。在不使用驱动器规格的系统上,驱动器将始终为空字符串。在所有情况下,drive + tail都将与路径相同。

1.3版新增功能

os.path.splitext(path)

分裂路径名路径成一对(root, ext),使得root + ext == path,和分机是空的或用一个周期开始,并且包含至多一个周期。基准名称上的主要时段将被忽略; splitext('.cshrc')返回('.cshrc', '')

在版本2.6中更改:当唯一的时间段是第一个字符时,早期版本可能会产生一个空的根。

os.path.splitunc(path)

将路径名路径拆分为一对,(unc, rest)以便unc是UNC挂载点(如r'\\host\mount')(如果存在),并保留路径的其余部分(如r'\path\file.ext')。对于包含驱动器号的路径,unc将始终为空字符串。

可用性:Windows。

os.path.walk(path, visit, arg)

使用参数调用目录树中每个目录的函数访问(arg, dirname, names)该目录树以路径为根(包括路径本身,如果是目录)。参数dirname指定访问目录,参数名称列出目录中的文件(从中获取os.listdir(dirname))。该访问功能可以修改名字影响设置访问下面的目录目录名称,例如避免前往树的某些部分。(名称引用的对象必须使用del或切片分配进行修改。)

注意

符号链接到目录不被视为子目录,walk()因此不会访问它们。要访问链接的目录,必须使用os.path.islink(file)和标识它们os.path.isdir(file),并walk()根据需要调用。

注意

这个函数已经被弃用,并且已经在Python 3中被删除,转而使用os.walk()

os.path.supports_unicode_filenames

True 如果任意Unicode字符串可以用作文件名(在由文件系统施加的限制内)。

2.3版本的新功能。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法