os.path --- Các thao tác tên đường dẫn phổ biến¶
Source code: Lib/genericpath.py, Lib/posixpath.py (dành cho POSIX) và Lib/ntpath.py (dành cho Windows).
Mô-đun này thực hiện một số chức năng hữu ích trên tên đường dẫn. Để đọc hoặc ghi tệp, hãy xem open() và để truy cập hệ thống tệp, hãy xem mô-đun os. Các tham số đường dẫn có thể được truyền dưới dạng chuỗi hoặc byte hoặc bất kỳ đối tượng nào triển khai giao thức os.PathLike.
Không giống như Unix shell, Python không thực hiện bất kỳ mở rộng đường dẫn automatic nào. Các hàm như expanduser() và expandvars() có thể được gọi một cách rõ ràng khi một ứng dụng muốn mở rộng đường dẫn giống shell. (Xem thêm mô-đun glob.)
Xem thêm
Mô-đun pathlib cung cấp các đối tượng đường dẫn cấp cao.
Ghi chú
Tất cả các hàm này chỉ chấp nhận byte hoặc chỉ các đối tượng chuỗi làm tham số của chúng. Kết quả là một đối tượng cùng loại, nếu trả về một đường dẫn hoặc tên tệp.
Ghi chú
Vì các hệ điều hành khác nhau có quy ước tên đường dẫn khác nhau nên có một số phiên bản của mô-đun này trong thư viện chuẩn. Mô-đun os.path luôn là mô-đun đường dẫn phù hợp với hệ điều hành Python đang chạy và do đó có thể sử dụng được cho các đường dẫn cục bộ. Tuy nhiên, bạn cũng có thể nhập và sử dụng các mô-đun riêng lẻ nếu bạn muốn thao tác với đường dẫn always theo một trong các định dạng khác nhau. Tất cả đều có giao diện giống nhau:
posixpathcho đường dẫn kiểu UNIXntpathcho đường dẫn Windows
Thay đổi trong phiên bản 3.8: exists(), lexists(), isdir(), isfile(), islink() và ismount() hiện trả về False thay vì đưa ra ngoại lệ cho các đường dẫn chứa các ký tự hoặc byte không thể biểu thị được ở cấp hệ điều hành.
- os.path.abspath(path)¶
Trả về phiên bản tuyệt đối đã chuẩn hóa của tên đường dẫn path. Trên hầu hết các nền tảng, điều này tương đương với việc gọi
normpath(join(os.getcwd(), path)).Xem thêm
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.basename(path, /)¶
Trả về tên cơ sở của tên đường dẫn path. Đây là phần tử thứ hai của cặp được trả về bằng cách chuyển path cho hàm
split(). Lưu ý rằng kết quả của hàm này khác với chương trình Unix basename; trong đó basename cho'/foo/bar/'trả về'bar', hàmbasename()trả về một chuỗi trống ('').Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.commonpath(paths)¶
Trả về đường dẫn con chung dài nhất của mỗi tên đường dẫn trong paths có thể lặp lại. Tăng
ValueErrornếu paths chứa cả tên đường dẫn tuyệt đối và tương đối, nếu paths nằm trên các ổ đĩa khác nhau hoặc nếu paths trống. Không giống nhưcommonprefix(), điều này trả về một đường dẫn hợp lệ.Added in version 3.5.
Thay đổi trong phiên bản 3.6: Chấp nhận một chuỗi path-like objects.
Thay đổi trong phiên bản 3.13: Bây giờ, bất kỳ lần lặp nào cũng có thể được chuyển, thay vì chỉ các chuỗi.
- os.path.commonprefix(list, /)¶
Trả về tiền tố chuỗi dài nhất (lấy theo từng ký tự) là tiền tố của tất cả các chuỗi trong list. Nếu list trống, trả về chuỗi trống (
'').Cảnh báo
Hàm này có thể trả về các đường dẫn không hợp lệ vì nó hoạt động từng ký tự một. Nếu bạn cần common path prefix thì thuật toán được triển khai trong chức năng này không an toàn. Sử dụng
commonpath()để tìm tiền tố đường dẫn chung.>>> os.path.commonprefix(['/usr/lib', '/usr/local/lib']) '/usr/l' >>> os.path.commonpath(['/usr/lib', '/usr/local/lib']) '/usr'
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.dirname(path, /)¶
Trả về tên thư mục của tên đường dẫn path. Đây là phần tử đầu tiên của cặp được trả về bằng cách chuyển path cho hàm
split().Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.exists(path)¶
Trả về
Truenếu path đề cập đến đường dẫn hiện có hoặc bộ mô tả tệp đang mở. Trả vềFalsecho các liên kết tượng trưng bị hỏng. Trên một số nền tảng, chức năng này có thể trả vềFalsenếu không được cấp quyền để thực thios.stat()trên tệp được yêu cầu, ngay cả khi path tồn tại trên thực tế.Thay đổi trong phiên bản 3.3: path bây giờ có thể là một số nguyên:
Trueđược trả về nếu nó là một bộ mô tả tệp đang mở,Falsenếu không.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.lexists(path)¶
Trả về
Truenếu path đề cập đến một đường dẫn hiện có, bao gồm cả các liên kết tượng trưng bị hỏng. Tương đương vớiexists()trên nền tảng thiếuos.lstat().Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.expanduser(path)¶
Trên Unix và Windows, trả về đối số có thành phần ban đầu là
~hoặc~userđược thay thế bằng thư mục chính của user đó.Trên Unix,
~ban đầu được thay thế bằng biến môi trườngHOMEnếu nó được đặt; nếu không thì thư mục chính của người dùng hiện tại sẽ được tra cứu trong thư mục mật khẩu thông qua mô-đun tích hợppwd. Một~userban đầu được tra cứu trực tiếp trong thư mục mật khẩu.Trên Windows,
USERPROFILEsẽ được sử dụng nếu được đặt, nếu không thì sự kết hợp giữaHOMEPATHvàHOMEDRIVEsẽ được sử dụng. Một~userban đầu được xử lý bằng cách kiểm tra xem thành phần thư mục cuối cùng trong thư mục chính của người dùng hiện tại có khớp vớiUSERNAMEhay không và thay thế nó nếu có.Nếu việc mở rộng không thành công hoặc nếu đường dẫn không bắt đầu bằng dấu ngã thì đường dẫn sẽ được trả về không thay đổi.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
Thay đổi trong phiên bản 3.8: Không còn sử dụng
HOMEtrên Windows.
- os.path.expandvars(path)¶
Trả về đối số với các biến môi trường được mở rộng. Các chuỗi con có dạng
$namehoặc${name}được thay thế bằng giá trị của biến môi trường name. Tên biến không đúng định dạng và tham chiếu đến các biến không tồn tại được giữ nguyên.Trên Windows, các bản mở rộng
%name%được hỗ trợ ngoài$namevà${name}.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.getatime(path, /)¶
Trả về thời gian truy cập lần cuối của path. Giá trị trả về là số dấu phẩy động cho biết số giây kể từ kỷ nguyên (xem mô-đun
time). TăngOSErrornếu tệp không tồn tại hoặc không thể truy cập được.
- os.path.getmtime(path, /)¶
Trả về thời điểm sửa đổi lần cuối của path. Giá trị trả về là số dấu phẩy động cho biết số giây kể từ kỷ nguyên (xem mô-đun
time). TăngOSErrornếu tệp không tồn tại hoặc không thể truy cập được.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.getctime(path, /)¶
Trả về thời gian của hệ thống, trên một số hệ thống (như Unix) là thời điểm thay đổi siêu dữ liệu cuối cùng và trên các hệ thống khác (như Windows), là thời gian tạo cho path. Giá trị trả về là một số cho biết số giây kể từ kỷ nguyên (xem mô-đun
time). TăngOSErrornếu tệp không tồn tại hoặc không thể truy cập được.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.getsize(path, /)¶
Trả về kích thước, tính bằng byte, của path. Tăng
OSErrornếu tệp không tồn tại hoặc không thể truy cập được.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.isabs(path, /)¶
Trả về
Truenếu path là tên đường dẫn tuyệt đối. Trên Unix, điều đó có nghĩa là nó bắt đầu bằng một dấu gạch chéo, trên Windows nó bắt đầu bằng hai dấu gạch chéo (phía sau) hoặc một ký tự ổ đĩa, dấu hai chấm và dấu gạch chéo (phía sau) cùng nhau.Xem thêm
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
Thay đổi trong phiên bản 3.13: Trên Windows, trả về
Falsenếu đường dẫn đã cho bắt đầu bằng chính xác một dấu gạch chéo (trở lại).
- os.path.isfile(path)¶
Trả về
Truenếu path là tệpexistingthông thường. Điều này tuân theo các liên kết tượng trưng, vì vậy cảislink()vàisfile()đều có thể đúng cho cùng một đường dẫn.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.isdir(path, /)¶
Trả về
Truenếu path là thư mụcexisting. Điều này tuân theo các liên kết tượng trưng, vì vậy cảislink()vàisdir()đều có thể đúng cho cùng một đường dẫn.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.isjunction(path)¶
Trả về
Truenếu path đề cập đến mục nhập thư mụcexistinglà một điểm nối. Luôn trả vềFalsenếu các mối nối không được hỗ trợ trên nền tảng hiện tại.Added in version 3.12.
- os.path.islink(path)¶
Trả về
Truenếu path đề cập đến mục nhập thư mụcexistinglà một liên kết tượng trưng. Luôn luônFalsenếu các liên kết tượng trưng không được thời gian chạy Python hỗ trợ.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.ismount(path)¶
Trả về
Truenếu tên đường dẫn path là mount point: một điểm trong hệ thống tệp nơi hệ thống tệp khác đã được gắn kết. Trên POSIX, hàm này sẽ kiểm tra xem cha mẹ của path,path/.., có ở trên một thiết bị khác với path hay không, hoặc liệupath/..và path có trỏ đến cùng một nút i trên cùng một thiết bị hay không --- điều này sẽ phát hiện các điểm gắn kết cho tất cả các biến thể Unix và POSIX. Nó không thể phát hiện các liên kết gắn kết trên cùng một hệ thống tập tin một cách đáng tin cậy. Trên các hệ thống Linux, nó sẽ luôn trả vềTruecho các tập con btrfs, ngay cả khi chúng không phải là điểm gắn kết. Trên Windows, gốc ký tự ổ đĩa và chia sẻ UNC luôn là điểm gắn kết và đối với bất kỳ đường dẫn nào khác,GetVolumePathNameđược gọi để xem liệu nó có khác với đường dẫn đầu vào hay không.Thay đổi trong phiên bản 3.4: Đã thêm hỗ trợ để phát hiện các điểm gắn kết không phải root trên Windows.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.isdevdrive(path)¶
Trả về
Truenếu tên đường dẫn path nằm trên Windows Dev Drive. Dev Drive được tối ưu hóa cho các kịch bản của nhà phát triển và mang lại hiệu suất đọc và ghi tệp nhanh hơn. Bạn nên sử dụng cho mã nguồn, thư mục bản dựng tạm thời, bộ đệm gói và các hoạt động sử dụng nhiều IO khác.Có thể gây ra lỗi đối với đường dẫn không hợp lệ, chẳng hạn như đường dẫn không có ổ đĩa có thể nhận dạng được nhưng trả về
Falsetrên nền tảng không hỗ trợ Dev Drives. Xem the Windows documentation để biết thông tin về cách bật và tạo Dev Drives.Added in version 3.12.
Thay đổi trong phiên bản 3.13: Chức năng này hiện có sẵn trên tất cả các nền tảng và sẽ luôn trả về
Falsetrên những nền tảng không hỗ trợ Dev Drives
- os.path.isreserved(path)¶
Trả về
Truenếu path là tên đường dẫn dành riêng trên hệ thống hiện tại.Trên Windows, tên tệp dành riêng bao gồm những tên kết thúc bằng dấu cách hoặc dấu chấm; những tệp chứa dấu hai chấm (tức là các luồng tệp chẳng hạn như "name:stream"), ký tự đại diện (tức là
'*?"<>'), ký tự ống dẫn hoặc ký tự điều khiển ASCII; cũng như tên thiết bị DOS như "NUL", "CON", "CONIN$", "CONOUT$", "AUX", "PRN", "COM1" và "LPT1".Ghi chú
Hàm này xấp xỉ các quy tắc dành cho đường dẫn dành riêng trên hầu hết các hệ thống Windows. Các quy tắc này thay đổi theo thời gian trong các bản phát hành Windows khác nhau. Chức năng này có thể được cập nhật trong các bản phát hành Python trong tương lai khi các thay đổi đối với quy tắc trở nên phổ biến rộng rãi.
sẵn có: Windows.
Added in version 3.13.
- os.path.join(path, /, *paths)¶
Tham gia một hoặc nhiều phân đoạn đường dẫn một cách thông minh. Giá trị trả về là sự kết hợp của path và tất cả các thành viên của *paths, với chính xác một dấu phân cách thư mục theo sau mỗi phần không trống, ngoại trừ phần cuối cùng. Nghĩa là, kết quả sẽ chỉ kết thúc bằng dấu phân cách nếu phần cuối cùng trống hoặc kết thúc bằng dấu phân cách.
Nếu một phân đoạn là một đường dẫn tuyệt đối (trên Windows yêu cầu cả ổ đĩa và root), thì tất cả các phân đoạn trước đó sẽ bị bỏ qua và việc nối tiếp tục từ phân đoạn đường dẫn tuyệt đối. Trên Linux, ví dụ:
>>> os.path.join('/home/foo', 'bar') '/home/foo/bar' >>> os.path.join('/home/foo', '/home/bar') '/nhà/quán bar'
Trên Windows, ổ đĩa không được đặt lại khi gặp phải đoạn đường dẫn gốc (ví dụ:
r'\foo'). Nếu một phân đoạn nằm trên một ổ đĩa khác hoặc là một đường dẫn tuyệt đối thì tất cả các phân đoạn trước đó sẽ bị bỏ qua và ổ đĩa sẽ được đặt lại. Ví dụ:>>> os.path.join('c:\\', 'foo') 'c:\\foo' >>> os.path.join('c:\\foo', 'd:\\bar') 'd:\\bar'
Lưu ý rằng vì có một thư mục hiện tại cho mỗi ổ đĩa nên
os.path.join("c:", "foo")biểu thị một đường dẫn liên quan đến thư mục hiện tại trên ổ đĩaC:(c:foo), không phảic:\foo.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object cho path và paths.
- os.path.normcase(path, /)¶
Bình thường hóa trường hợp của tên đường dẫn. Trên Windows, chuyển đổi tất cả các ký tự trong tên đường dẫn thành chữ thường, đồng thời chuyển đổi dấu gạch chéo tiến thành dấu gạch chéo ngược. Trên các hệ điều hành khác, trả về đường dẫn không thay đổi.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.normpath(path)¶
Chuẩn hóa tên đường dẫn bằng cách thu gọn các dấu phân cách dư thừa và các tham chiếu cấp cao hơn để
A//B,A/B/,A/./BvàA/foo/../Bđều trở thànhA/B. Thao tác chuỗi này có thể thay đổi ý nghĩa của đường dẫn chứa các liên kết tượng trưng. Trên Windows, nó chuyển đổi dấu gạch chéo tiến thành dấu gạch chéo ngược. Để bình thường hóa trường hợp, sử dụngnormcase().Ghi chú
Trên hệ thống POSIX, theo IEEE Std 1003.1 2013 Edition; 4.13 Pathname Resolution, nếu tên đường dẫn bắt đầu bằng chính xác hai dấu gạch chéo, thì thành phần đầu tiên theo sau các ký tự đầu tiên có thể được diễn giải theo cách được xác định khi triển khai, mặc dù nhiều hơn hai ký tự đầu sẽ được coi là một ký tự đơn.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.realpath(path, /, *, strict=False)¶
Trả về đường dẫn chuẩn của tên tệp đã chỉ định, loại bỏ mọi liên kết tượng trưng gặp phải trong đường dẫn (nếu chúng được hệ điều hành hỗ trợ). Trên Windows, chức năng này cũng sẽ phân giải các tên kiểu MS-DOS (còn gọi là 8.3), chẳng hạn như
C:\\PROGRA~1thànhC:\\Program Files.Theo mặc định, đường dẫn được đánh giá cho đến thành phần đầu tiên không tồn tại, là vòng lặp liên kết tượng trưng hoặc có đánh giá tăng
OSError. Tất cả các thành phần như vậy được thêm vào phần hiện có của đường dẫn mà không thay đổi.Một số lỗi được xử lý theo cách này bao gồm "quyền truy cập bị từ chối", "không phải thư mục" hoặc "đối số không hợp lệ đối với chức năng nội bộ". Do đó, đường dẫn kết quả có thể bị thiếu hoặc không thể truy cập được, vẫn có thể chứa các liên kết hoặc vòng lặp và có thể đi qua các thư mục không phải là thư mục.
Hành vi này có thể được sửa đổi bằng các đối số từ khóa:
Nếu strict là
True, lỗi đầu tiên gặp phải khi đánh giá đường dẫn sẽ xuất hiện lại. Đặc biệt,FileNotFoundErrorđược nâng lên nếu path không tồn tại hoặcOSErrorkhác nếu không thể truy cập được.Nếu strict là
os.path.ALLOW_MISSING, các lỗi khác ngoàiFileNotFoundErrorsẽ xuất hiện lại (như vớistrict=True). Do đó, đường dẫn trả về sẽ không chứa bất kỳ liên kết tượng trưng nào, nhưng tệp được đặt tên và một số thư mục mẹ của nó có thể bị thiếu.Ghi chú
Hàm này mô phỏng quy trình của hệ điều hành để tạo một đường dẫn chuẩn, hơi khác một chút giữa Windows và UNIX về cách các liên kết và các thành phần đường dẫn tiếp theo tương tác.
API hệ điều hành tạo đường dẫn chuẩn nếu cần, do đó, thông thường không cần thiết phải gọi hàm này.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
Thay đổi trong phiên bản 3.8: Các liên kết và mối nối tượng trưng hiện đã được giải quyết trên Windows.
Thay đổi trong phiên bản 3.10: Tham số strict đã được thêm vào.
Thay đổi trong phiên bản 3.14: Giá trị
ALLOW_MISSINGcho tham số strict đã được thêm vào.
- os.path.ALLOW_MISSING¶
Giá trị đặc biệt được sử dụng cho đối số strict trong
realpath().Added in version 3.14.
- os.path.relpath(path, start=os.curdir)¶
Trả về đường dẫn tệp tương đối cho path từ thư mục hiện tại hoặc từ thư mục start tùy chọn. Đây là tính toán đường dẫn: hệ thống tập tin không được truy cập để xác nhận sự tồn tại hoặc bản chất của path hoặc start. Trên Windows,
ValueErrorđược nâng lên khi path và start ở trên các ổ đĩa khác nhau.start mặc định là
os.curdir.Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.samefile(path1, path2, /)¶
Trả về
Truenếu cả hai đối số tên đường dẫn đều tham chiếu đến cùng một tệp hoặc thư mục. Điều này được xác định bởi số thiết bị và số i-node và đưa ra một ngoại lệ nếu lệnh gọios.stat()trên một trong hai tên đường dẫn không thành công.Thay đổi trong phiên bản 3.2: Đã thêm hỗ trợ Windows.
Thay đổi trong phiên bản 3.4: Windows hiện sử dụng cách triển khai tương tự như tất cả các nền tảng khác.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.sameopenfile(fp1, fp2)¶
Trả về
Truenếu bộ mô tả tệp fp1 và fp2 tham chiếu đến cùng một tệp.Thay đổi trong phiên bản 3.2: Đã thêm hỗ trợ Windows.
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.samestat(stat1, stat2, /)¶
Trả về
Truenếu bộ dữ liệu thống kê stat1 và stat2 tham chiếu đến cùng một tệp. Những cấu trúc này có thể được trả về bởios.fstat(),os.lstat()hoặcos.stat(). Hàm này thực hiện so sánh cơ bản được sử dụng bởisamefile()vàsameopenfile().Thay đổi trong phiên bản 3.4: Đã thêm hỗ trợ Windows.
- os.path.split(path, /)¶
Chia tên đường dẫn path thành một cặp,
(head, tail)trong đó tail là thành phần tên đường dẫn cuối cùng và head là mọi thứ dẫn đến điều đó. Phần tail sẽ không bao giờ chứa dấu gạch chéo; nếu path kết thúc bằng dấu gạch chéo, tail sẽ trống. Nếu không có dấu gạch chéo trong path thì head sẽ trống. Nếu path trống thì cả head và tail đều trống. Dấu gạch chéo cuối bị loại bỏ khỏi head trừ khi nó là gốc (chỉ một hoặc nhiều dấu gạch chéo). Trong mọi trường hợp,join(head, tail)trả về đường dẫn đến cùng vị trí với path (nhưng các chuỗi có thể khác nhau). Xem thêm các chức năngjoin(),dirname()vàbasename().Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.splitdrive(path, /)¶
Chia tên đường dẫn path thành một cặp
(drive, tail)trong đó drive là điểm gắn kết hoặc chuỗi trống. Trên các hệ thống không sử dụng thông số kỹ thuật của ổ đĩa, drive sẽ luôn là chuỗi trống. Trong mọi trường hợp,drive + tailsẽ giống path.Trên Windows, chia tên đường dẫn thành điểm chia sẻ drive/UNC và đường dẫn tương đối.
Nếu đường dẫn chứa ký tự ổ đĩa, ổ đĩa sẽ chứa mọi thứ cho đến và bao gồm cả dấu hai chấm
>>> chia ổ ("c:/dir") ("c:", "/dir")
Nếu đường dẫn chứa đường dẫn UNC, ổ đĩa sẽ chứa tên máy chủ và chia sẻ:
>>> chia ổ ("//host/máy tính/dir") ("//máy chủ/máy tính", "/dir")
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.splitroot(path, /)¶
Chia tên đường dẫn path thành một bộ 3 mục
(drive, root, tail)trong đó drive là tên thiết bị hoặc điểm gắn kết, root là một chuỗi các dấu phân cách sau ổ đĩa và tail là mọi thứ sau root. Bất kỳ mục nào trong số này có thể là chuỗi trống. Trong mọi trường hợp,drive + root + tailsẽ giống path.Trên hệ thống POSIX, drive luôn trống. root có thể trống (nếu path là tương đối), một dấu gạch chéo lên (nếu path là tuyệt đối) hoặc hai dấu gạch chéo lên (do việc triển khai được xác định cho mỗi IEEE Std 1003.1-2017; 4.13 Pathname Resolution.) Ví dụ:
>>> Splitroot('/home/sam') ('', '/', 'nhà/sam') >>>splitroot('//home/sam') ('', '//', 'nhà/sam') >>>splitroot('///home/sam') ('', '/', '//home/sam')
Trên Windows, drive có thể trống, tên ký tự ổ đĩa, phần chia sẻ UNC hoặc tên thiết bị. Zz001zz có thể trống, dấu gạch chéo tiến hoặc dấu gạch chéo ngược. Ví dụ:
>>> Splitroot('C:/Users/Sam') ('C:', '/', 'Người dùng/Sam') >>> Splitroot('//Server/Share/Users/Sam') ('//Máy chủ/Chia sẻ', '/', 'Người dùng/Sam')
Added in version 3.12.
- os.path.splitext(path, /)¶
Chia tên đường dẫn path thành một cặp
(root, ext)sao choroot + ext == pathvà phần mở rộng ext trống hoặc bắt đầu bằng một dấu chấm và chứa nhiều nhất một dấu chấm.Nếu đường dẫn không chứa phần mở rộng, ext sẽ là
'':>>>splitext('bar') ('thanh', '')
Nếu đường dẫn chứa phần mở rộng thì ext sẽ được đặt thành phần mở rộng này, bao gồm cả dấu chấm ở đầu. Lưu ý rằng các khoảng thời gian trước đó sẽ bị bỏ qua:
>>>splitext('foo.bar.exe') ('foo.bar', '.exe') >>>splitext('/foo/bar.exe') ('/foo/bar', '.exe')
Các giai đoạn dẫn đầu của thành phần cuối cùng của đường dẫn được coi là một phần của gốc:
>>>splitext('.cshrc') ('.cshrc', '') >>>splitext('/foo/....jpg') ('/foo/....jpg', '')
Thay đổi trong phiên bản 3.6: Chấp nhận path-like object.
- os.path.supports_unicode_filenames¶
Truenếu các chuỗi Unicode tùy ý có thể được sử dụng làm tên tệp (trong giới hạn do hệ thống tệp áp đặt).