Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
15e22e1c
Kaydet (Commit)
15e22e1c
authored
Ara 05, 1997
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added doc strings and reindented according to new standard, without tabs.
üst
7f973288
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
3 deletions
+37
-3
ntpath.py
Lib/ntpath.py
+37
-3
No files found.
Lib/ntpath.py
Dosyayı görüntüle @
15e22e1c
# Module 'ntpath' -- common operations on DOS pathnames
# Module 'ntpath' -- common operations on WinNT/Win95 pathnames
"""Common pathname manipulations, WindowsNT/95 version.
Instead of importing this module
directly, import os and refer to this module as os.path.
"""
import
os
import
stat
...
...
@@ -13,6 +17,8 @@ _normtable = string.maketrans(string.uppercase + "\\/",
string
.
lowercase
+
os
.
sep
*
2
)
def
normcase
(
s
):
"""Normalize case of pathname. Makes all characters lowercase and all
slashes into backslashes"""
return
string
.
translate
(
s
,
_normtable
)
...
...
@@ -23,6 +29,7 @@ def normcase(s):
# a slash or backslash.
def
isabs
(
s
):
"""Test whether a path is absolute"""
s
=
splitdrive
(
s
)[
1
]
return
s
!=
''
and
s
[:
1
]
in
'/
\\
'
...
...
@@ -30,6 +37,7 @@ def isabs(s):
# Join two (or more) paths.
def
join
(
a
,
*
p
):
"""Join two or more pathname components, inserting "
\\
" as needed"""
path
=
a
for
b
in
p
:
if
isabs
(
b
):
...
...
@@ -45,6 +53,8 @@ def join(a, *p):
# colon) and the path specification.
# It is always true that drivespec + pathspec == p
def
splitdrive
(
p
):
"""Split a pathname into drive and path specifiers. Returns a 2-tuple
"(drive,path)"; either part may be empty"""
if
p
[
1
:
2
]
==
':'
:
return
p
[
0
:
2
],
p
[
2
:]
return
''
,
p
...
...
@@ -57,6 +67,8 @@ def splitdrive(p):
# The resulting head won't end in '/' unless it is the root.
def
split
(
p
):
"""Split a pathname. Returns tuple "(head, tail)" where "tail" is
everything after the final slash. Either part may be empty"""
d
,
p
=
splitdrive
(
p
)
slashes
=
''
while
p
and
p
[
-
1
:]
in
'/
\\
'
:
...
...
@@ -84,6 +96,8 @@ def split(p):
# It is always true that root + ext == p.
def
splitext
(
p
):
"""Split the extension from a pathname. Extension is everything from the
last dot to the end. Returns "(root, ext)", either part may be empty"""
root
,
ext
=
''
,
''
for
c
in
p
:
if
c
in
[
'/'
,
'
\\
'
]:
...
...
@@ -103,18 +117,21 @@ def splitext(p):
# Return the tail (basename) part of a path.
def
basename
(
p
):
"""Returns the final component of a pathname"""
return
split
(
p
)[
1
]
# Return the head (dirname) part of a path.
def
dirname
(
p
):
"""Returns the directory component of a pathname"""
return
split
(
p
)[
0
]
# Return the longest prefix of all list elements.
def
commonprefix
(
m
):
"Given a list of pathnames, returns the longest common leading component"
if
not
m
:
return
''
prefix
=
m
[
0
]
for
item
in
m
:
...
...
@@ -130,6 +147,7 @@ def commonprefix(m):
# This will always return false on systems where posix.lstat doesn't exist.
def
islink
(
path
):
"""Test for symbolic link. On WindowsNT/95 always returns false"""
return
0
...
...
@@ -137,6 +155,7 @@ def islink(path):
# This is false for dangling symbolic links.
def
exists
(
path
):
"""Test whether a path exists"""
try
:
st
=
os
.
stat
(
path
)
except
os
.
error
:
...
...
@@ -149,6 +168,7 @@ def exists(path):
# for the same path.
def
isdir
(
path
):
"""Test whether a path is a directory"""
try
:
st
=
os
.
stat
(
path
)
except
os
.
error
:
...
...
@@ -161,6 +181,7 @@ def isdir(path):
# for the same path.
def
isfile
(
path
):
"""Test whether a path is a regular file"""
try
:
st
=
os
.
stat
(
path
)
except
os
.
error
:
...
...
@@ -171,6 +192,7 @@ def isfile(path):
# Are two filenames really pointing to the same file?
def
samefile
(
f1
,
f2
):
"""Test whether two pathnames reference the same actual file"""
s1
=
os
.
stat
(
f1
)
s2
=
os
.
stat
(
f2
)
return
samestat
(
s1
,
s2
)
...
...
@@ -181,6 +203,8 @@ def samefile(f1, f2):
# XXX THIS IS BROKEN UNDER DOS! ST_INO seems to indicate number of reads?
def
sameopenfile
(
fp1
,
fp2
):
"""Test whether two open file objects reference the same file (may not
work correctly)"""
s1
=
os
.
fstat
(
fp1
.
fileno
())
s2
=
os
.
fstat
(
fp2
.
fileno
())
return
samestat
(
s1
,
s2
)
...
...
@@ -190,6 +214,7 @@ def sameopenfile(fp1, fp2):
# describing the same file?
def
samestat
(
s1
,
s2
):
"""Test whether two stat buffers reference the same file"""
return
s1
[
stat
.
ST_INO
]
==
s2
[
stat
.
ST_INO
]
and
\
s1
[
stat
.
ST_DEV
]
==
s2
[
stat
.
ST_DEV
]
...
...
@@ -198,6 +223,7 @@ def samestat(s1, s2):
# XXX This degenerates in: 'is this the root?' on DOS
def
ismount
(
path
):
"""Test whether a path is a mount point"""
return
isabs
(
splitdrive
(
path
)[
1
])
...
...
@@ -210,6 +236,10 @@ def ismount(path):
# or to impose a different order of visiting.
def
walk
(
top
,
func
,
arg
):
"""walk(top,func,args) calls func(arg, d, files) for each directory "d"
in the tree rooted at "top" (including "top" itself). "files" is a list
of all the files and subdirs in directory "d".
"""
try
:
names
=
os
.
listdir
(
top
)
except
os
.
error
:
...
...
@@ -233,6 +263,8 @@ def walk(top, func, arg):
# variable expansion.)
def
expanduser
(
path
):
"""Expand ~ and ~user constructions. If user or $HOME is unknown,
do nothing"""
if
path
[:
1
]
<>
'~'
:
return
path
i
,
n
=
1
,
len
(
path
)
...
...
@@ -266,6 +298,8 @@ def expanduser(path):
varchars
=
string
.
letters
+
string
.
digits
+
'_-'
def
expandvars
(
path
):
"""Expand shell variables of form $var and ${var}. Unknown variables
are left unchanged"""
if
'$'
not
in
path
:
return
path
res
=
''
...
...
@@ -320,6 +354,7 @@ def expandvars(path):
# but as this module is called "ntpath", that's obviously wrong!
def
normpath
(
path
):
"""Normalize path, eliminating double slashes, etc."""
path
=
normcase
(
path
)
prefix
,
path
=
splitdrive
(
path
)
while
path
[:
1
]
==
os
.
sep
:
...
...
@@ -330,8 +365,7 @@ def normpath(path):
while
i
<
len
(
comps
):
if
comps
[
i
]
==
'.'
:
del
comps
[
i
]
elif
comps
[
i
]
==
'..'
and
i
>
0
and
\
comps
[
i
-
1
]
not
in
(
''
,
'..'
):
elif
comps
[
i
]
==
'..'
and
i
>
0
and
comps
[
i
-
1
]
not
in
(
''
,
'..'
):
del
comps
[
i
-
1
:
i
+
1
]
i
=
i
-
1
elif
comps
[
i
]
==
''
and
i
>
0
and
comps
[
i
-
1
]
<>
''
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment