文件与目录操作,文件和路线操作函数总括

By admin in 4858.com on 2019年4月23日

先来看多少个应用os,path.isabs()的例证:

4858.com 1

很显然,第贰个路子是从未有过难题,而背后都以自己不管道输送入的一串字符,为何有个别再次来到True有的回来False呢?

 

自家翻看了Python叁.伍的文书档案,开采了如此一句话:

os.path.``isabs class=”sig-paren”>(path class=”sig-paren”>)

Return True if  class=”highlighted”>path文件与目录操作,文件和路线操作函数总括。 is an absolute  class=”highlighted”>pathname. On Unix, that means it begins with a
slash, on Windows that it begins with a (back)slash after chopping off
a potential drive letter.

也正是说在WIndow系统下,假如输入的字符串以” /
“开端,os.path.isabs()就会回到True,那么第玖个例证就能够精晓了。

 

而第贰个和首个有啥界别吧?不是都应该回到False吗?

翻开资料后笔者找到了下边这段话:

The current os.path.isabs documentation
says:
> isabs(path) 
>    Return True if path is an
absolute pathname (begins with a slash). 
The “begins with a slash” part is
incorrect since certain systems use a
different pathname notation.
For example, on Macintosh (where os.sep
== “:”) this is an absolute
pathname:
style=”font-size: 14pt”>hardDriveName:folderName1:folderName2:fileName.ext
…and this is a relative one:
:folderName1:fileName.ext
Moreover, on Windows
os.path.isabs(‘\\’) returns True since ‘\\’ is an
alias for the current drive letter (e.g.
C:\\) hence, independently from
what said before, the documentation
should include also the “backslash”
term.
It turns out that on Windows there are
really 4 different kinds of paths:
1) Completely relative, e.g.
foo\bar
2) Completely absolute, e.g.
c:\foo\bar or \\server\share
3) Halfbreeds with no drive, e.g.
\foo\bar
4) Halfbreeds relative to the current
working directory on a specific drive, e.g. c:foo\bar
Python 2.5’s os.path.isabs() method
considers both (2) and (3) to be absolute;

固然是python2的,可是那和python3应有没什么差距。从上边那段话能够知晓,在Windows系统上,以“  // 
“开首的字符串,os.path.isabs也会回来True。

下一场大家又能够领略:

4858.com 2

那就能解说为啥第三个再次来到False而第拾3个重临True了。

 

 

 

 

1)os.path
壹.一 os.path.isabs(path) 是还是不是是相对路线
1.2 os.path.isfile(path)
1.3 os.path.isdir(path)
1.四 os.path.islink(path) 是还是不是是链接;但借使系统不援救链接,重返False
1.5 os.path.ismount(path) 是不是为驱动器;不过很不幸的是在python
3.0中那是个不可能运维的函数。
原函数如下:

1: os.listdir(path) //path为目录
效益也就是在path目录下实行dir命令,重临为list类型
print os.listdir(‘..’)
2: os.path.walk(path,visit,arg)
path :是快要遍历的目录
visit :是一个函数指针,函数圆形为:
callback(arg,dir,fileList)
中间arg为为传给walk的arg ,
dir是path下的二个目录,fileList为dir下的文件和目录组成的list,
arg:传给visit用的
3:os.path.split(path)
path 为二个路线,
出口,把path分成两片段,具体看实例:
print os.path.split(“abc/de.txt”)
(‘abc’, ‘de.txt’)
os.path.split(“abc”)
(“, ‘abc’)
print os.path.split(“de/abc/de”)
(‘de/abc’, ‘de’)
4: os.path.splitext(filename)
把文件名分成文件名称和强大名
os.path.splitext(abc/abcd.txt)
(‘abc/abcd’, ‘.txt’)
5: os.path.dirname(path)
把目录名建议来
print os.path.dirname(“abc”)
#出口为空
print os.path.dirname(‘abc\def’)
abc
6: os.path.basename(filename)
收获主文件名
print os.path.basename(‘abc’)
abc
print os.path.basename(‘abc.txt’)
abc
print os.path.basename(‘bcd/abc’)
abc #本条供给专注不包蕴目录名称
print os.path.basename(‘.’)
.
7:os.mkdir(path, [mode])
path为目录名: 那里有个供给,只可以成立拔尖目录
举例path为 abc/def 则当前目录下必须存在abc 不然失败
8: os.makedirs(path [,mode])
能够创制多级目录
玖:os.remove(path)删除1个文件,一定是三个文书
os.removedirs(path) 删除一个索引下全体东西
os.rmdir(path) 删除二个目录,而且必然要空,否则os.errer
10:os.walk(path)
遍历path,重临1个目的,他的各样部分都以多少个伊利组
(‘目录x’,[目录x下的目录list],目录x上边包车型地铁文本)
举例:
a = os.walk(‘.’)
for i in a:
print i
11:shutil.copy(src,dst)
把文件src内容拷贝到文件dst中。,目的区域必须能够写,固然dst存在,则dst被覆盖
――――――――――――――――――
11.一 os.path — 普通的路线名操作
以此模块落成部分在门路名称上有效性的函数。
告诫:在 Windows 上,这个函数中的七个不能够科学地支持 UNC
路径名。splitunc() 和 ismount() 能够正确地管理它们。
abspath(path)
回去 path
路线名八个规格化的相对化的本子。在超过半数阳台上,也正是normpath(join(os.getcwd(),
path))。壹.五.贰本子中的新特色。
basename(path)
归来 path 路线名最尾部的名称。那是由
split(path)重回的对的第3半有的。注意这么些函数的结果区别于Unix basename
程序;UNIX的 basename对于’/foo/bar/’ 再次来到 ‘bar’,basename()
函数重临一个空字符串(”)。
commonprefix(list)
回到最长的渠道前缀(选用字符的字符),是 list中具有路径的一个前缀。借使list
为空,再次回到空字符串(”)。注意可以回到无效的门路因为它每趟操作二个字符。
dirname(path)
归来 path 路线名的目录名称。那是由 split(path)重临的对的率先半有的。
exists(path)
万一 path 与一个已存在的路径关联重返True。对于破坏的标志连接再次回到 False
。在一部分平台上,若是权力未有被予以在伸手的文件上进行os.stat()这一个函数也许回到False,固然该
path 实际上存在。
lexists(path)
倘诺 path 与三个已存在的门路关联再次回到 True 。对于毁损的连日重回 True
。在有个别贫乏 os.lstat()的阳台上一对1于 exists() 。二.肆本子中的新特点。
expanduser(path)
在 Unix上,返回
“~”或”~user”做为替换用户的主目录的初阶某个的参数。开端的”~” 通过情状变量
HOME(要是它被设置)替换; 不然当前用户的主目录在口令目录中通过放内衣模特块
pwd被询问。起头的”~user” 直接地在口令目录中被询问。
在 Windows 上,仅支持 “~” ;它通过情状变量 HOME 或透过HOMEDPRADOIVE 和
HOMEPATH的组合替换。
即使该扩大退步或只要该路线不以二个波浪号起始,被重临的路径无改造。
expandvars(path)
回来使用遭遇变量增加的参数。”$name” 或 “${name}”格式的子串通过景况变量
name 的值被交流。残缺的变量名称和引用不设有的变量被无改换的放弃。
getatime(path)
重临 path 的末梢访问时间。重临的值是二个从新纪元初阶的秒数(参见 time
模块)。假设文件不设有或不足访问挂起 os.error
。1.5.二本子中的新特征。二.三版本中的改造:借使 os.stat_float_times()
再次回到True,结果是四个浮点数。
getmtime(path)
归来 path 最终修改的时日。重返值是一个从新纪元开端的秒数(参见 time
模块)。要是文件不设有或不足访问挂起 os.error
。一.伍.贰版本中的新特色。贰.三本子中的改换:假如 os.stat_float_times()
再次来到True,结果是3个浮点数。
getctime(path)
回去系统的 ctime ,在局地种类上 (像Unix)
是最后改造的日子,在别的一些体系上 (像Windows),是 path
创设的时光。再次回到值是多少个从新纪元早先的秒数(参见 time
模块)。如若文件不设有或不足访问挂起 os.error 。二.三版本中的新特征。
getsize(path)
以字节为单位,重临 path 的尺寸。假使文件不设有或不足访问挂起 os.error
。一.5.贰版本中的新天性。
isabs(path)
固然 path 是三个相对路径名重回True (以三个斜杠起初)。
isfile(path)
万壹 path 是三个已存在的常见文书重临True 。那效仿符号连接,因此 islink()
和 isfile() 对于一样的门道都能够再次来到 true 。
isdir(path)
假使 path 是三个已存在的目录再次回到 True 。那效仿符号链接,由此 islink() 和
isdir() 对于同样的门径都得以回到 true 。
islink(path)
借使 path
引用二个目录项,它是1个标志连接,再次来到True。尽管不帮衬符号连接始终重返False 。
ismount(path)
一经路线名 path是贰个 挂载点 重返 True
:在文件系统中的那一个点1个两样的文件系统已经被挂载。那个函数检验是不是path的父路线, path/..,和 path 是3个不如的设施,或是或不是 path/.. 和 path
在同等的设备上针对同样的i-node — 那应该是为全体的 Unix 和 POSIX
变种检查实验挂载点。
join(path1[, path2[, …]])
智能化地连接3个或四个门路组件。借使任1组件是一个相对路线,全体前边的零件被裁撤(在Windows
上,包涵前边的驱动器名,倘若有) ,并且延续连接。重回的值是
path1,和可选地 path二等的咬合,准确地以一个目录分隔符
(os.sep)插入到三个零部件之间,除非 path二 为空。注目的在于 Windows
上,因为各类驱动器有一个当前目录,os.path.join(“c:”,
“foo”)表示相对于驱动器 C: 上的当前目录的1个路径(c:foo),而不是
c:\\foo。
normcase(path)
规则八个路线名的轻重写。在Unix上,再次来到未变动的门道;在不区分轻重缓急写的文件系统上,它调换路线为小写字母。在Windows上
,它也转移正斜杠为反斜杠。
normpath(path)
标准2个路径名。折叠多余(或冗长的)分隔符并且定位于外层引用,乃至于
A//B,A/./B 和 A/foo/../B 都形成 A/B。它不标准大小写(规范化大小写用
normcase())。在Windows上,它调换正斜杠为反斜杠。借使它涵盖符号连接,它应该了然那可能变动路线的企图!
realpath(path)
回到内定的文书名专门的工作的门路,除去在路径中相遇的别的标识连接(假诺操作系统协理)。二.二本子中的新特征。
samefile(path1, path2)
要是路线名参数与同样的文件或目录关联重返 True (通过配备号和 i-node
数表示)。即使 os.stat()
调用各种路线名退步挂起1个足够。有效的:Macintosh,Unix。
sameopenfile(fp1, fp2)
如果文件讲述符 fp1 和 fp二 与平等的公文关连重临 True
。有效的:Macintosh,Unix。
samestat(stat1, stat2)
一经 stat 元组 stat1和stat贰 与同样的文书关连重回 True
。这几个组织也许由fstat(),lstat(),或stat()返回。那一个函数使用samefile()
和 sameopenfile()达成了骨干的可比。有效的:Macintosh,Unix。
split(path)
细分路线名 path 到二个对中,(head, tail)中 tail 是最终的门道名组件head
是指导它的任何事物。tail 部分将平昔都不包涵斜线;假诺 path
以三个斜线结尾,tail 将为空。如若 path 中平昔不斜线,head 将为空。要是path 为空,head 和 tail 都为空。尾随斜线从 head 中被剔除,除非它是根(one
or more slashes only)。在差不多具有的场所中,join(head, tail) 也正是 path
(只有四个不如是当从 tail 中 head 被多少个斜线分割时)。
splitdrive(path)
细分路线名 path 到一个(drive, tail) 对中,drive
是各样驱动器的辨证或空字符串。在系统上不接纳驱动器表明的,drive
将直接是空字符。在享有情状中,drive + tail 将和 path
同样。1.三本子中的新特征。
splitext(path)
分开路线名 path 到一对 (root, ext) 中变成 root + ext == path,并且ext
为空或以三个句点初叶还要只多包蕴多个句点。
splitunc(path)
分割路线名 path 到二个对(unc, rest)中以便于 unc 是 UNC 挂载点 (诸如
r’\\host\mount’),如果,并且 rest 路线的其他部分(诸如
r’\path\file.ext’)。对于路线包括驱动器名,unc
将直接是空字符。有效的:Windows。
walk(path, visit, arg)
对此以 path 为根的目录树中的每二个目录 (包括 path
自己,若是它是三个目录),以参数 (arg, dirname, names)调用函数 visit
。参数 dirname 钦命访问的目录,参数 names 列出在目录中的文件(从
os.listdir(dirname)中拿到)。visit 函数可以修改 names 改换 dirname
上边访问的目录的设置,比如,制止访问树的某一有个别。(由 names
关连的目的必须在格外的职位被涂改,使用 del 或 slice 指派。)
专注:符号连接到目录不被视作多个子目录管理,并且因此walk()将不访问它们。访问连接的目录你没办法不以os.path.islink(file) 和
os.path.isdir(file)标志它们,并且必须调用walk() 。

想入门python图像处理,一些提到到保存路线的操作,split/splitext/dirname/basename,搜了有的文书路线操作函数使用情势,mark.

# Is a path a mount point? Either a root (with or without drive
letter)
# or an UNC path with at most a / or \ after the mount point.

: os.listdir(path) //path为目录
功效相当于在path目录下举办dir命令,重回为list类型 print os.listdir(‘..’)
二: os.path.walk(path,visit,arg) path :是就要遍历…

//====//

def ismount(path):
“””Test whether a path is a mount point (defined as root of drive)”””
unc, rest = splitunc(path)
seps = _get_bothseps(p)
if unc:
return rest in p[:0] + seps
p = splitdrive(path)[1]
return len(p) == 1 and p[0] in seps

1: os.listdir(path) //path为目录

其荒谬之处是众所周知的。不领悟这么些函数为何那样写,在windows平台,能够如下完毕该意义
def ismount(path):
p = splitdrive(path)[1]
if len(p) > 0:
return(False)
else:
return(True)

成效相当于在path目录下试行dir命令,再次来到为list类型

任何平台没有相应的机械,不亮堂具体意况。
一.陆 os.path.abspath(path) 重回相对路线
1.7 os.path.dirname(path)
1.8 os.path.exists(path)
一.九 os.path.lexists(path) 和exists函数同样
1.10os.path.getsize(path)
一.1壹os.path.getctime(path)
再次来到浮点数的种类时间,在类Unix系统上是文件近日改成的光阴,
在Windows上是文件或目录的开创时间
一.1二os.path.getmtime(path) 文件或目录最终更动的时辰
一.一叁os.path.getatime(path) 文件或目录最终存取的时日
1.1四os.path.samefile(path壹,path贰)
如若叁个门路指向一样的公文或目录,再次来到True(Windows上不可用)
一.一五os.path.split(path) 分割路线,假如path是目录,重临[parentName,
dirName];
如果path是文件,返回[dirName, fileName]
一.1六os.path.splitext(path) 分割路线,如若path是目录,重回[parentName,
”];
如果path是文件,返回[dirName+fileName, 文件后缀]

print os.listdir(‘..’)

2)fileinput
轻巧易行利用
import file
input for line in fileinput.input():
process(line)

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

2.1 fileinput.input([files[, inplace[,
backup[,mode[,openhook]]]]])
创制一个fileinput的实例,要是files为空,则指向调整台获得输入;假设file为’-‘,同样转向调节台得到输入。
暗中认可情况,文件以text mode张开,要是急需任何格式,则要求钦点。
2.2 fileinput.filename() #只有当读入第贰行今后,该值才被赋值
2.3 fileinput.fileno()
2.4 fileinput.lineno()
2.5 fileinput.filelineno()
2.6 fileinput.isfirstline()
2.7 fileinput.isstdin()
2.8 fileinput.nextfile()
2.9 fileinput.close()

path :是快要遍历的目录

3)glob
能够应用简易的方法相配有个别目录下的全体子目录或文件,用法也很轻巧。
三.1 glob.glob(regression) 再次回到多少个列表
叁.二 glob.iglob(regression) 返回八个遍历器
以此模块轻巧好用,强力推荐。

visit :是1个函数指针,函数圆形为:

4)linecache
看名字就知晓了,属于缓存类的
4.1 linecache.getline(filename,lineno[, module_globals])
#获得filename的第lineno行
4.2 linecache.clearcache()
4.3 linecache.checkcache([filename]) #自己商讨更新

callback(arg,dir,fileList)

5)shutil 入眼引入的袄,好东西,援助文件集结的复制和删除操作
5.1 shutil.copyfileobj(fsrc, fdst[, length])
5.2 shutil.copyfile(src, dst) #地点3个都是文本的复制
5.3 shutil.copymode(src, dst)
#而外复制内容,还会复制别的的有的音讯,比如作者
5.4 shutil.copystat(src, dst) #除去复制内容,还会复制存取时间的新闻
5.5 shutil.copy(src, dst) #复制文件到dst,当dst为目录时,复制到子目录
5.6 shutil.copy2(src, dst) #相当于先copy再copystat
5.7 shutil.copytree(src, dst[, symlinks=False[, ingore=None]])
#复制文件夹树,注意,dst文件夹必须是不设有的
5.8 shutil.rmtree(path[, ignore_erros[, onerror]])
5.9 shutil.move(src,dst)

当中arg为为传给walk的arg ,
dir是path下的贰个索引,fileList为dir下的文书和目录组成的list,
arg:传给visit用的

复制代码 代码如下:

3:os.path.split(path)

def copytree(src, dst, symlinks=False):
names = os.listdir(src)
os.makedirs(dst)
errors = []
for name in names:
srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
try:
if symlinks and os.path.islink(srcname):
linkto = os.readlink(srcname)
os.symlink(linkto, dstname)
elif os.path.isdir(srcname):
copytree(srcname, dstname, symlinks)
else:
copy2(srcname, dstname)
# XXX What about devices, sockets etc.?
except (IOError, os.error) as why:
errors.append((srcname, dstname, str(why)))
# catch the Error from the recursive copytree so that we can
# continue with other files
except Error as err:
errors.extend(err.args[0])
try:
copystat(src, dst)
except WindowsError:
# can’t copy file access times on Windows
pass
except OSError as why:
errors.extend((src, dst, str(why)))
if errors:
raise Error(errors)

path 为2个路径,

一.一 os.path.isabs(path) 是或不是是绝对路线1.二 os.path.isfile(path) 1.三 os.path.isdir(path) 一.四os.path.islink(path) 是不是是链接;但万壹系统不援救链接,返…

输出,把path分成两有的,具体看实例:

print os.path.split(“abc/de.txt”)

(‘abc’, ‘de.txt’)

os.path.split(“abc”)

(“, ‘abc’)

print os.path.split(“de/abc/de”)

(‘de/abc’, ‘de’)

4: os.path.splitext(filename)

把公文名分成文件名称和扩展名

os.path.splitext(abc/abcd.txt)

(‘abc/abcd’, ‘.txt’)

5: os.path.dirname(path)

把目录名提议来

print os.path.dirname(“abc”)

#出口为空

print os.path.dirname(‘abc\def’)

abc

6: os.path.basename(filename)

获得主文件名

print os.path.basename(‘abc’)

abc

print os.path.basename(‘abc.txt’)

abc

print os.path.basename(‘bcd/abc’)

abc #那些需求注意不包含目录名称

print os.path.basename(‘.’)

.

7:os.mkdir(path, [mode])

path为目录名: 这里有个须要,只好创设一流目录

比方说path为 abc/def 则当前目录下必须存在abc 不然战败

8: os.makedirs(path [,mode])

能够创制多级目录

九:os.remove(path)删除二个文书,一定是3个文本

os.removedirs(path) 删除多少个目录下具有东西

os.rmdir(path) 删除3个索引,而且一定要空,不然os.errer

10:os.walk(path)

遍历path,再次回到贰个对象,他的各类部分都以一个安慕希组

(‘目录x’,[目录x下的目录list],目录x上边的文本)

举例:

a = os.walk(‘.’)

for i in a:

print i

11:shutil.copy(src,dst)

把公文src内容拷贝到文件dst中。,目的区域必须能够写,假使dst存在,则dst被遮住

4858.com ,――――――――――――――――――

1壹.1 os.path — 普通的路线名操作

本条模块达成部分在渠道名称上有效的函数。

警告:在 Windows 上,那么些函数中的四个不可能精确地支撑 UNC
路线名。splitunc() 和 ismount() 能够正确地拍卖它们。

abspath(path)

归来 path
路线名3个规格化的相对化的版本。在大部平台上,相当于normpath(join(os.getcwd(),
path))。壹.5.二版本中的新特征。

basename(path)

回到 path 路径名最尾部的称号。那是由
split(path)再次来到的对的第1半有个别。注意那些函数的结果不相同于Unix basename
程序;UNIX的 basename对于’/foo/bar/’ 重回 ‘bar’,basename()
函数再次来到贰个空字符串(”)。

commonprefix(list)

回来最长的路径前缀(采纳字符的字符),是 list中有所路径的三个前缀。假如list
为空,重临空字符串(”)。注意能够再次回到无效的门路因为它每一遍操作3个字符。

dirname(path)

回到 path 路线名的目录名称。这是由 split(path)重临的对的第五分之三有个别。

exists(path)

假定 path 与二个已存在的门路关联重临True。对于破坏的号子连接重临 False
。在有的平台上,假如权力未有被授予在呼吁的文本上实施os.stat()这些函数大概回到False,即便该
path 实际上存在。

lexists(path)

若是 path 与3个已存在的门道关联再次来到 True 。对于毁损的连天重临 True
。在部分不够 os.lstat()的阳台上约等于 exists() 。二.肆本子中的新特色。

expanduser(path)

在 Unix上,返回
“~”或”~user”做为替换用户的主目录的启幕有的的参数。开头的”~” 通过境况变量
HOME(假使它被安装)替换; 不然当前用户的主目录在口令目录中通过内置模块
pwd被询问。开端的”~user” 直接地在口令目录中被询问。

在 Windows 上,仅支持 “~” ;它经过景况变量 HOME 或透过HOMED帕杰罗IVE 和
HOMEPATH的整合替换。

假设该扩展失利或只要该路径不以一个波浪号开头,被重临的门道无改换。

expandvars(path)

回来使用境况变量扩大的参数。”$name” 或 “${name}”格式的子串通过遭遇变量
name 的值被轮换。残缺的变量名称和引用不存在的变量被无改换的抛开。

getatime(path)

重回 path 的末段访问时间。再次回到的值是一个从新纪元起始的秒数(参见 time
模块)。借使文件不设有或不足访问挂起 os.error
。1.五.2版本中的新性格。二.三本子中的更换:倘若 os.stat_float_times()
重临True,结果是三个浮点数。

getmtime(path)

归来 path 最后修改的年华。再次来到值是一个从新纪元先导的秒数(参见 time
模块)。假设文件不存在或不足访问挂起 os.error
。①.五.2本子中的新特点。2.叁本子中的改动:如若 os.stat_float_times()
重返True,结果是2个浮点数。

getctime(path)

回去系统的 ctime ,在有的系统上 (像Unix)
是最后改换的大运,在任何部分系统上 (像Windows),是 path
创设的岁月。重临值是二个从新纪元初阶的秒数(参见 time
模块)。假若文件不存在或不足访问挂起 os.error 。贰.三本子中的新特色。

getsize(path)

以字节为单位,重返 path 的分寸。假使文件不存在或不足访问挂起 os.error
。壹.伍.二本子中的新特点。

isabs(path)

倘诺 path 是贰个相对路线名重临True (以三个斜杠初叶)。

isfile(path)

如果 path 是一个已存在的一般性文书重回True 。那效仿符号连接,由此 islink()
和 isfile() 对于同1的渠道都能够重临 true 。

isdir(path)

若果 path 是3个已存在的目录再次来到 True 。那效仿符号链接,因而 islink() 和
isdir() 对于同样的门径都能够回去 true 。

islink(path)

倘使 path
引用3个目录项,它是1个标志连接,重临True。倘使不扶助符号连接始终重回False 。

ismount(path)

举个例子路线名 path是八个 挂载点 重回 True
:在文件系统中的那一个点二个不一的文件系统已经被挂载。那一个函数检查实验是还是不是path的父路线, path/..,和 path 是三个不等的设备,或是或不是 path/.. 和 path
在同等的装置上针对同样的i-node — 这应该是为全体的 Unix 和 POSIX
变种检验挂载点。

join(path1[, path2[, …]])

智能化地连接三个或八个路子组件。如果任1组件是3个相对路线,全体前边的零件被打消(在Windows
上,包含前边的驱动器名,如若有) ,并且接二连三连接。重临的值是
path一,和可选地 path二等的组成,精确地以一个索引分隔符
(os.sep)插入到五个零部件之间,除非 path2 为空。注目的在于 Windows
上,因为每种驱动器有一个当前目录,os.path.join(“c:”,
“foo”)表示相对于驱动器 C: 上的当前目录的3个门路(c:foo),而不是
c:\\foo。

normcase(path)

条件2个路线名的高低写。在Unix上,重回未更改的路径;在不区分轻重缓急写的文件系统上,它转变路线为小写字母。在Windows上
,它也转移正斜杠为反斜杠。

normpath(path)

原则3个路线名。折叠多余(或冗长的)分隔符并且定位于外层引用,以致于
A//B,A/./B 和 A/foo/../B 都改为 A/B。它不标准大小写(标准化大小写用
normcase())。在Windows上,它调换正斜杠为反斜杠。假若它包罗符号连接,它应有领会那或然改造路径的意向!

realpath(path)

回去钦点的文件名正式的路线,除去在路线中相见的别样标志连接(假若操作系统辅助)。二.二版本中的新特色。

samefile(path1, path2)

要是路线名参数与相同的文件或目录关联重临 True (通过配备号和 i-node
数表示)。假设 os.stat()
调用每一个路线名失利挂起叁个相当。有效的:Macintosh,Unix。

sameopenfile(fp1, fp2)

倘诺文件讲述符 fp一 和 fp二 与平等的公文关连重回 True
。有效的:Macintosh,Unix。

samestat(stat1, stat2)

只要 stat 元组 stat壹和stat二 与同壹的文书关连再次来到 True
。这几个结构恐怕由fstat(),lstat(),或stat()重返。那么些函数使用samefile()
和 sameopenfile()完结了主题的相比较。有效的:Macintosh,Unix。

split(path)

分开路径名 path 到3个对中,(head, tail)中 tail 是最终的门径名组件head
是带领它的任何事物。tail 部分将从来都不包罗斜线;假使 path
以1个斜线结尾,tail 将为空。要是 path 中一向不斜线,head 将为空。若是path 为空,head 和 tail 都为空。尾随斜线从 head 中被删去,除非它是根(one
or more slashes only)。在差不多具有的情景中,join(head, tail) 也等于 path
(唯有二个不壹是当从 tail 中 head 被七个斜线分割时)。

splitdrive(path)

划分路线名 path 到2个(drive, tail) 对中,drive
是各种驱动器的验证或空字符串。在系统上不选用驱动器说明的,drive
将直接是空字符。在有着景况中,drive + tail 将和 path
同样。壹.叁本子中的新特点。

splitext(path)

分割路径名 path 到1对 (root, ext) 中变成 root + ext == path,并且ext
为空或以一个句点初叶还要只多含有三个句点。

splitunc(path)

分开路线名 path 到三个对(unc, rest)中以便于 unc 是 UNC 挂载点 (诸如
r’\\host\mount’),假使,并且 rest 路线的别的部分(诸如
r’\path\file.ext’)。对于路线包罗驱动器名,unc
将向来是空字符。有效的:Windows。

walk(path, visit, arg)

对此以 path 为根的目录树中的每3个目录 (包括 path
本身,假如它是3个索引),以参数 (arg, dirname, names)调用函数 visit
。参数 dirname 钦点访问的目录,参数 names 列出在目录中的文件(从
os.listdir(dirname)中赢得)。visit 函数可以修改 names 改造 dirname
上面访问的目录的安装,例如,制止访问树的某一片段。(由 names
关连的靶子必须在合适的任务被涂改,使用 del 或 slice 指派。)

专注:符号连接到目录不被用作3个子目录管理,并且为此
walk()将不访问它们。访问连接的目录你必须以os.path.islink(file) 和
os.path.isdir(file)标志它们,并且必须调用walk() 。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有