[英]Extracting directory path from full file path without the file name
我有一個 function 接收完整的文件路徑作為字符串,目標是只返回沒有文件名的文件路徑。 The goal also is to handle all file type such as Windows, Unix etc. I had to replace \
with /
which works fine for Windows file paths but seems unnecessary for Unix paths.
def get_path(file):
file = file.replace('\\', '/')
path = os.path.dirname(file)
return path
有沒有辦法在不替換反斜杠的情況下提取路徑? 這是兩個示例輸入路徑字符串
Windows: 'c:\\Program Files\\user\\file1.txt'
Unix: 'file/path/name.txt'
我已經搜索了堆棧,但找不到任何適合我的答案。
您可以使用os.path.split()
。 根據文檔,它根據運行python
的操作系統拆分路徑
注意由於不同的操作系統有不同的路徑名約定,標准庫中有這個模塊的幾個版本。 os.path 模塊始終是適用於 Python 正在運行的操作系統的路徑模塊,因此可用於本地路徑。 但是,如果您想操作始終采用其中一種不同格式的路徑,您也可以導入和使用各個模塊。 它們都具有相同的接口:用於 UNIX 樣式路徑的 posixpath
- Windows 路徑的 ntpath
- macpath 用於舊式 MacOS 路徑
- os2emxpath 用於 OS/2 EMX 路徑
如果您有 windows 路徑並且您在 Ubuntu/Linux 上運行,那么您可以使用文檔中所述的ntpath
,如下所示:
>>> import ntpath
>>> ntpath.split("c:\\Program Files\\user\\file1.txt")
('c:\\Program Files\\user', 'file1.txt')
>>> ntpath.split("file/path/name.txt")
('file/path', 'name.txt')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.